
Isihloko se-mono-repository kuxoxwe ngaso izikhathi ezingaphezu kwesisodwa futhi, njengomthetho, kubangela impikiswano esebenzayo kakhulu. Ngokudala njengethuluzi lomthombo ovulekile eliklanyelwe ukuthuthukisa inqubo yokwakha ikhodi yesicelo kusuka ku-Git kuya ezithombeni ze-Docker (bese kuziletha ku-Kubernetes), asicabangi kakhulu ngokuthi ikuphi ukukhetha okungcono kakhulu. Kithina, kuyinhloko ukunikeza konke okudingekayo kubasekeli bemibono ehlukene (uma lokhu kungangqubuzani nomqondo ojwayelekile, kunjalo).
Ukusekelwa kwakamuva kwe-werf kwe-mono-repo kuyisibonelo esihle salokhu. Kepha okokuqala, ake sithole ukuthi lokhu kusekelwa kuhlobene kanjani nokusebenzisa i-werf nokuthi i-Docker Registry ihlangene ngani nayo ...
Izinkinga
Ake sicabange ngesimo esinjalo. Inkampani inamaqembu amaningi okuthuthukisa asebenza kumaphrojekthi azimele. Izinhlelo zokusebenza eziningi zisebenza ku-Kubernetes ngakho-ke zifakwe esitsheni. Ukugcina iziqukathi, izithombe, udinga ukubhalisa (irejista). Njengokubhalisa okunjalo, inkampani isebenzisa i-Docker Hub nge-akhawunti eyodwa COMPANY. Ifana nezinhlelo eziningi zokugcina amakhodi omthombo, I-Docker Hub ayikuvumeli ukulandelana kwesikhoso esidleke, njenge COMPANY/PROJECT/IMAGE. Uma kunjalo... ungazigcina kanjani izinhlelo zokusebenza ezingezona eze-monolithic kurejista ngalo mkhawulo ngaphandle kokudala i-akhawunti ehlukile yephrojekthi ngayinye?

Mhlawumbe, isimo esichazwe sijwayelekile kumuntu mathupha, kodwa ake sicabangele indaba yokuhlela isitoreji sohlelo lokusebenza ngokujwayelekile, i.e. ngaphandle kokubhekisela kusibonelo esingenhla kanye ne-Docker Hub.
Izixazululo
Uma isicelo i-monolithic, iza ngesithombe esisodwa, bese kungabikho mibuzo futhi simane sigcine izithombe kusibhalisi sesitsha sephrojekthi.
Uma isicelo sethulwa njengezingxenye eziningi, microservices, bese kudingeka indlela ethile. Esibonelweni sohlelo lokusebenza lwewebhu olujwayelekile oluhlanganisa izithombe ezimbili: frontend и backend - ongakhetha kukho:
- Gcina izithombe kumakhosombe ahlanganisiwe ahlukene:

- Gcina yonke into endaweni eyodwa, futhi ucabangele igama lesithombe kuthegi, isibonelo, kanje:

NB: Empeleni, kukhona enye inketho ngokulondoloza ezindaweni zokugcina ezahlukene, PROJECT-frontend и PROJECT-backend, kodwa ngeke sikucabangele ngenxa yobunkimbinkimbi bosekelo, ukuhlelwa nokusabalalisa kwamalungelo phakathi kwabasebenzisi.
ukwesekwa kwe-werf
Ekuqaleni, i-werf yayizikhawulele kuphela kumakhosombe afakwe esidlekeni - ngenhlanhla, ababhalisi abaningi bayasisekela lesi sici. Kusuka kunguqulo , wengeze umsebenzi namarejistri lapho ukwakha isidleke akusekelwe, futhi i-Docker Hub ingenye yazo. Kusukela ngaleso sikhathi kuqhubeke, umsebenzisi unenketho yokuthi angagcina kanjani izithombe zohlelo lokusebenza.
Ukuqaliswa kuyatholakala ngaphansi kwenketho --images-repo-mode=multirepo|monorepo (okuzenzakalelayo multirepo, i.e. ukugcinwa ezindaweni zokugcina izidleke). Ichaza amaphethini lapho izithombe zigcinwa khona kurejista. Kwanele ukukhetha imodi oyifunayo uma usebenzisa imiyalo eyisisekelo, futhi konke okunye kuzohlala kungashintshiwe.
Ngoba izinketho eziningi ze-werf zingasethwa okuguquguqukayo kwemvelo, ezinhlelweni ze-CI/CD, imodi yokugcina ngokuvamile kulula ukuyimisa emhlabeni wonke kuyo yonke iphrojekthi. Ngokwesibonelo, esimweni se-GitLab vele ungeze okuguquguqukayo kwendawo kuzilungiselelo zephrojekthi: Izilungiselelo -> CI/CD -> Okuguquguqukayo: WERF_IMAGES_REPO_MODE: multirepo|monorepo.
Uma sikhuluma ngokushicilela izithombe kanye nokukhipha izinhlelo zokusebenza (ungafunda mayelana nalezi zinqubo ngokuningiliziwe kuma-athikili amadokhumenti afanelekile: и ), bese imodi inquma kuphela isifanekiso ongasebenza ngaso nesithombe.
Usathane emininingwaneni
Umehluko kanye nobunzima obukhulu lapho ungeza indlela entsha yokugcina ingaphakathi kwenqubo yokuhlanza irejista (ukuthola izici zokuhlanza ezisekelwa i-werf, bheka ).
Lapho uhlanza, i-werf icabangela izithombe ezisetshenziswa kumaqoqo e-Kubernetes, kanye nezinqubomgomo ezilungiselelwe umsebenzisi. Izinqubomgomo zisekelwe ekuhlukaniseni omaka babe ngamasu. Amasu asekelwayo njengamanje:
- Amasu ama-3 axhunywe izinto zokuqala ze-Git ezifana nethegi, igatsha, nokuzibophezela;
- Isu elingu-1 lomaka ngokwezifiso abangafanele.
Silondoloza ulwazi mayelana namasu omaka lapho sishicilela isithombe kumalebula esithombe sokugcina. Incazelo ngokwayo yiyona okuthiwa meta tag - Kuyadingeka ukusebenzisa ezinye zezinqubomgomo. Isibonelo, lapho ususa igatsha noma umaka endaweni yokugcina ye-Git, kunengqondo ukususa okuhlobene. engasetshenzisiwe izithombe ezisuka kurejista, ezimbozwe ingxenye yezinqubomgomo zethu.
Uma ilondolozwe endaweni eyodwa (monorepo), kuthegi yesithombe, ngaphezu kwe-meta tag, igama lesithombe lingabuye ligcinwe: PROJECT:frontend-META-TAG. Ukuze sizihlukanise, asizange sethule noma yisiphi isihlukanisi esithile, kodwa simane sengeze inani elidingekayo kulebula yesithombe sokugcina lapho sishicilela.
NB: Uma ungathanda ukubuka yonke into echazwe kukhodi yomthombo we-werf, lapho-ke isiqalo singaba .
Kulesi sihloko, ngeke sinake kakhulu izinkinga nokulungiswa kwendlela yethu: mayelana namasu okumaka, ukugcina idatha kumalebula kanye nenqubo yokushicilela iyonke - konke lokhu kuchazwe ngokuningiliziwe embikweni wakamuva kaDmitry Stolyarov: "".
Ukufingqa
Ukuntuleka kokusekelwa kwamarejistri angagunyaziwe bekungeyona into evimbela thina noma abasebenzisi be-werf esibaziyo - ngemuva kwakho konke, ungakwazi njalo ukuphakamisa ukubhaliswa kwesithombe okuhlukile (noma ushintshele kuRegistry Yesiqukathi enemibandela ku-Google Cloud) ... Nokho, ukususa ukuvinjelwa okunjalo kubonakala kunengqondo ukuze ithuluzi lilungele umphakathi obanzi we-DevOps. Ukukusebenzisa, sibhekane nobunzima obukhulu ekusebenzeni kabusha umshini wokuhlanza isibhali. Manje njengoba konke sekumi ngomumo, kuhle ukubona ukuthi sekulula kumuntu othile, futhi thina (njengabathuthukisi abakhulu bephrojekthi) ngeke sibe nobunzima obubonakalayo ekuqhubekeni nokusekela lesi sici.
Hlala nathi futhi maduze sizokutshela mayelana nokunye okusha !
PS
Funda futhi kubhulogi yethu:
- «";
- «".
Source: www.habr.com


