Tautoko mo te monorepo me te multirepo i roto i te werf me te aha e pa ana ki a Docker Registry

Tautoko mo te monorepo me te multirepo i roto i te werf me te aha e pa ana ki a Docker Registry

Neke atu i te kotahi te korero mo te kaupapa o te repository kotahi, a, hei tikanga, ka tino kaha te tautohetohe. Te hanga werf Hei taputapu Open Source i hangaia hei whakapai ake i te mahi hanga waehere tono mai i a Git ki roto i nga whakaahua Docker (katahi ka tukuna atu ki a Kubernetes), kaore matou e tino whakaaro ko tehea te mea pai. Ki a matou, ko te mea tuatahi ki te whakarato i nga mea katoa e tika ana mo nga kaitautoko o nga whakaaro rereke (mehemea kaore tenei e whakahē i te whakaaro noa, o te akoranga).

Ko te tautoko mo te mono-repo i werf he tauira pai mo tenei. Engari ko te tuatahi, kia mohio tatou he pehea te hononga o tenei tautoko ki te whakamahi i te werf me te aha o Docker Registry ki a ...

Nga take

Whakaarohia tenei ahuatanga. He maha nga roopu whanaketanga a te kamupene e mahi ana i nga kaupapa motuhake. Ko te nuinga o nga tono e mahi ana i Kubernetes, a, na reira, ka mau ki roto. Hei rokiroki ipu me nga whakaahua, me rehita. Ka whakamahia e te kamupene Docker Hub me te kaute kotahi hei rehitatanga pera. COMPANY. He rite ki te nuinga o nga punaha rokiroki waehere puna, Karekau a Docker Hub e whakaae ki a koe ki te hanga naakapa o nga putunga, penei COMPANY/PROJECT/IMAGE. I tenei take... me pehea e taea ai e matou te penapena i nga tono kore-monolithic i roto i te rehita me tenei herenga me te kore e hanga he kaute motuhake mo ia kaupapa?

Tautoko mo te monorepo me te multirepo i roto i te werf me te aha e pa ana ki a Docker Registry

Tena pea ko te ahuatanga kua whakaahuahia he mohio ki tetahi tangata, engari me titiro ki te take mo te whakarite rokiroki tono i te nuinga, ara. me te kore korero ki te tauira o runga ake nei me te Docker Hub.

Nga otinga

Mena ko te tono monolithically, ka tae mai ki te ahua kotahi, katahi ka kore he patai ka ara ake ka tiakina noa e matou nga whakaahua ki te rehita ipu o te kaupapa.

Ina whakaatuhia he tono hei waahanga maha, ratonga moroiti, ka hiahia koe ki te whiriwhiri i tetahi huarahi. Ma te whakamahi i te tauira o te tono tukutuku angamaheni e rua nga whakaahua: frontend и backend - ko nga whiringa ka taea:

  1. Rokiroki atahanga ki roto i nga putunga kohanga motuhake:

    Tautoko mo te monorepo me te multirepo i roto i te werf me te aha e pa ana ki a Docker Registry

  2. Whakaorangia nga mea katoa ki roto i te putunga kotahi, ka whakauruhia te ingoa whakaahua ki te tohu, hei tauira, penei:

    Tautoko mo te monorepo me te multirepo i roto i te werf me te aha e pa ana ki a Docker Registry

NB: Inaa, tera ano tetahi atu whiringa me te penapena i roto i nga momo putunga, PROJECT-frontend и PROJECT-backend, engari kaore matou e whakaaro na te uaua o te tautoko, te whakahaere me te tohatoha o nga tika i waenga i nga kaiwhakamahi.

tautoko werf

I te timatanga, i whakawhäitihia te werf ki nga whare pupuri kohanga - Waimarie, ko te nuinga o nga rehita e tautoko ana i tenei ahuatanga. Mai i te putanga v1.0.4-alpha.3, mahi taapiri me nga rehita kei roto kaore i te tautokona te kohanga, ko Docker Hub tetahi o ratou. Mai i tenei wa, ka whai waahi te kaiwhakamahi ki te penapena whakaahua tono.

Ko te whakatinanatanga e waatea ana hei waahanga o te whiringa --images-repo-mode=multirepo|monorepo (taunoa multirepo, i.e. te rokiroki i roto i nga putunga kohanga). Ka tautuhia nga tauira e penapena ai nga whakaahua ki te rehita. He nui noa ki te kowhiri i te aratau e hiahiatia ana i te wa e whakamahi ana i nga whakahau taketake, ka noho tonu nga mea katoa kaore e rereke.

I te mea ka taea te whakarite te nuinga o nga whiringa werf taurangi taiao, i roto i nga punaha CI / CD, ko te tikanga rokiroki he mea ngawari ki te whakarite i te ao mo te kaupapa katoa. Hei tauira, i roto i te take o GitLab Taapiri noa he taurangi taiao ki nga tautuhinga kaupapa: Tautuhinga -> CI / CD -> Taurangi: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

Mena ka korero tatou mo te whakaputa whakaahua me te huri i nga tono (ka taea e koe te panui mo enei tukanga i roto i nga tuhinga tuhinga e tika ana: Te tukanga whakaputa и Tukua te tukanga), katahi ka whakatauhia e te aratau te tauira ka taea e koe te mahi me te ahua.

Ko te rewera kei roto i nga korero

Ko te rereketanga me te tino uaua ki te taapiri i tetahi tikanga rokiroki hou kei te horoi i te rehita (Nga waahanga horoi e tautokohia ana i te werf, tirohia Horoi horoi).

I te wa e horoi ana, ka whai whakaaro a werf ki nga whakaahua e whakamahia ana i roto i nga kohinga Kubernetes, me nga kaupapa here kua whirihorahia e te kaiwhakamahi. Ko nga kaupapa here kei runga i te wehewehe i nga tohu ki nga rautaki. Nga rautaki e tautokohia ana i tenei wa:

  1. E 3 nga rautaki e pa ana ki te Git primitives penei i te tohu, te peka me te commit;
  2. 1 rautaki mo nga tohu ritenga ritenga.

Ka tiakina e matou nga korero mo te rautaki tohu i te wa e whakaputa ana i te ahua ki nga tapanga o te ahua whakamutunga. Ko te tikanga ake ko te mea e kiia nei tohu meta — e tika ana mo te whakamahi i etahi kaupapa here. Hei tauira, i te wa e mukua ana he peka, he tohu ranei mai i te putunga putunga Git, he mea tika kia mukua te hono kāore i whakamahia nga whakaahua mai i te rehitatanga, e kapi ana i tetahi waahanga o a maatau kaupapa here.

I te wa e penapena ana ki tetahi putunga (monorepo), i roto i te tohu whakaahua, hei taapiri i te tohu meta, ka taea hoki te penapena i te ingoa o te ahua: PROJECT:frontend-META-TAG. Hei wehe i a raatau, kaore matou i whakauru i tetahi kaiwehewehe motuhake, engari i taapiri noa te uara e tika ana ki te tapanga o te ahua whakamutunga i te wa e whakaputa ana.

NB: Mena kei te pirangi koe ki te titiro ki nga mea katoa e whakaahuatia ana i te waehere puna werf, katahi ka taea te timatanga PR 1684.

I roto i tenei tuhinga kaore matou e aro nui ki nga raruraru me te tika o ta maatau huarahi: mo nga rautaki tohu, te rokiroki raraunga i roto i nga tapanga me te tukanga whakaputa i te nuinga - kua whakaahuahia enei katoa i roto i te purongo tata a Dmitry Stolyarov: "Ko werf ta matou taputapu mo CI/CD i Kubernetes".

Hei whakapoto

Ko te kore o te tautoko mo nga rehitatanga me te kore he kohanga ehara i te mea aukati mo matou, mo nga kaiwhakamahi werf ranei e mohiotia ana e matou - i muri i nga mea katoa, ka taea e koe te whakaara ake i tetahi rehitatanga motuhake o nga whakaahua (ka huri ranei ki te Rehita Ipu herenga i Google Cloud) ... Heoi , ko te tango i taua here he ahua arorau kia pai ake ai te taputapu ki te hapori DevOps whanui. I a matou e whakatinana ana, i raru matou ki te mahi ano i te tikanga horoi rehita ipu. Inaianei kua rite nga mea katoa, he pai ki te mohio kua ngawari ake mo tetahi, a ko matou (ko nga kaihanga matua o te kaupapa) kaore e kite i nga uauatanga ki te tautoko i tenei waahanga.

Noho ki a matou, a ka roa ka korero matou ki a koe mo etahi atu mea hou i roto werf!

PS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero