Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Ko taku whakaaro kia panui koe i te tuhinga o te purongo na Alexander Sigachev mai i Inventos "Te whakawhanaketanga me te mahi whakamatautau me Docker + Gitlab CI"

Ko te hunga e timata ana ki te whakatinana i te whakawhanaketanga me te mahi whakamatautau i runga i te Docker + Gitlab CI he maha nga paatai. Me timata ki hea? Me pehea te whakarite? Me pehea te whakamatautau?

He pai tenei purongo na te mea e korero ana i roto i te huarahi hanganga mo te whanaketanga me te mahi whakamatautau ma te whakamahi i a Docker me Gitlab CI. No te tau 2017 te purongo. Ki taku whakaaro mai i tenei purongo ka taea e koe te kohi i nga kaupapa, tikanga, whakaaro, me nga wheako o te whakamahi.

Mo te hunga e hiahia ana, tirohia te ngeru.

Ko Alexander Sigachev toku ingoa. Kei te mahi ahau mo Inventos. Ka korero ahau ki a koe mo taku wheako ki te whakamahi i a Docker me te pehea e whakatinanahia ai e matou ki runga i nga kaupapa o te kamupene.

Kaupapa o te ripoata: Te tukanga whanaketanga ma te whakamahi i te Docker me te Gitlab CI.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Ko taku korero tuarua tenei mo Docker. I te wa o te purongo tuatahi, i whakamahia e matou a Docker anake i te Whanaketanga i runga i nga miihini kaiwhakawhanake. Ko te maha o nga kaimahi i whakamahi i a Docker he 2-3 nga tangata. Āta haere, ka whiwhi wheako, ā, ka neke atu mātou. Hononga ki to maatau pūrongo tuatahi.

Ka aha i roto i tenei ripoata? Ka tohatohahia o maatau wheako mo nga rake i kohia e matou, he aha nga raru i whakatauhia e matou. Ehara i te mea ataahua i nga waahi katoa, engari i taea e maatau te neke haere.

To tatou pepeha: dockerize nga mea katoa ka mau i o tatou ringa.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He aha nga raruraru kei te whakaotihia e tatou?

Ina he maha nga roopu a tetahi kamupene, he rauemi tiritahi te kaihōtaka. He wahanga ka toia te kaihōtaka mai i tetahi kaupapa ka hoatu ki tetahi atu kaupapa mo etahi wa.

Kia tere te mohio o te kaitakataka, me tango e ia te waehere puna o te kaupapa me te whakarewa i tetahi taiao i te wa e taea ai, ka taea e ia te anga whakamua ki te whakaoti rapanga o tenei kaupapa.

Ko te tikanga, ki te timata koe mai i te wahanga, he iti noa nga tuhinga kei roto i te kaupapa. Ko nga taangata tawhito anake he korero mo te whakarite. Ka whakatauhia e nga kaimahi o raatau waahi mahi i roto i nga ra kotahi, e rua ranei. Hei tere ake, i whakamahia e matou a Docker.

Ko te take e whai ake nei ko te paerewa o nga tautuhinga i roto i te Whanaketanga. I roto i taku wheako, ka mau tonu nga kaiwhakawhanake i te kaupapa. I ia wahanga tuarima, ka whakauruhia he rohe ritenga, hei tauira vasya.dev. Ko taku hoa tata a Petya e noho ana i toku taha, ko petya.dev tona rohe. Ka whakawhanakehia e ratou he paetukutuku, etahi waahanga punaha ranei ma te whakamahi i tenei ingoa rohe.

Ka tipu te punaha ka timata enei ingoa rohe ki te whakauru ki roto i te whirihoranga, ka puta he raruraru i roto i nga taiao Whakawhanaketanga ka tuhia ano te ara o te pae.

Ka pera ano me nga tautuhinga papaa raraunga. Ko etahi o nga tangata kaore e raruraru ki te haumaru me te mahi me te kupuhipa pakiaka kore. I te wa o te whakaurunga, ka tono a MySQL ki tetahi mo tetahi kupuhipa, a ko te kupuhipa ka puta ko 123. I te nuinga o nga wa ka huri tonu te whirihoranga raraunga i runga i te mahi a te kaiwhakawhanake. I whakatika tetahi, kaore tetahi i whakatika i te whirihora. He tinihanga i te wa i whakauruhia e matou etahi whirihora whakamatautau .gitignore a, me whakauru e ia kaiwhakawhanake te putunga raraunga. Na tenei i uaua ake te mahi timata. I roto i etahi atu mea, me mahara koe mo te paataka raraunga. Me arawhiti te paataka korero, me rehita he kupuhipa, me rehita he kaiwhakamahi, me hanga he tohu, me era atu.

Ko tetahi atu raruraru ko nga putanga rereke o nga whare pukapuka. He maha nga wa ka mahi tetahi kaiwhakawhanake ki nga kaupapa rereke. He kaupapa tuku iho, i timata i te rima tau ki muri (mai i te 2017 - tuhipoka a te ētita). I te timatanga i timata matou me MySQL 5.5. He kaupapa hou ano kei te ngana tatou ki te whakatinana i etahi atu putanga hou o MySQL, hei tauira 5.7 neke atu ranei (i te 2017 - tuhipoka a te ētita)

Ko nga tangata katoa e mahi ana me MySQL e mohio ana kei enei whare pukapuka e mau ana nga herenga. He tino raruraru ki te whakahaere tahi i nga putunga raraunga e 2. I te iti rawa, he raruraru ki te hono i nga kiritaki tawhito ki te paparangi raraunga hou. Na tenei ka puta ake etahi raruraru.

Ko te raruraru e whai ake nei ko te mahi a te kaiwhakawhanake i runga i te miihini o te rohe, ka whakamahia e ia nga rauemi a-rohe, nga konae a-rohe, RAM rohe. Ko nga taunekeneke katoa i te wa o te whakawhanake i tetahi otinga ki nga raru ka mahia i roto i te anga o te mahi i runga i te miihini kotahi. Ko tetahi tauira ko te wa kei a matou nga kaitoro whakamuri i roto i te Whakangao 3, a ka tiakina e te kaiwhakawhanake nga konae ki te raarangi pakiaka, a mai i reira ka mau a nginx i nga konae hei whakautu i te tono. Ka uru mai taua waehere ki te Whakangao, ka puta te konae kei runga i tetahi o nga kaitoro e 3.

Kei te whanake haere te ahunga o nga ratonga miihini. Ka wehewehea a maatau tono nui ki etahi waahanga iti e pahekohe ana tetahi ki tetahi. Ma tenei ka taea e koe te kowhiri i nga hangarau mo tetahi kohinga mahi motuhake. Ma tenei ka taea e koe te wehewehe i te mahi me te waahi kawenga i waenga i nga kaihanga.

Ko te kaiwhakawhanake o mua, e whanake ana i JS, karekau he awe ki te tuara. Ko te kaiwhakawhanake o muri, ka whanake, i roto i ta maatau take, a Ruby on Rails kaore e pokanoa ki a Frondend. Ka mahia te taunekeneke ma te whakamahi i te API.

Hei painga, ma te whakamahi i a Docker i taea e matou te hangarua rauemi i runga i te Stging. Ko ia kaupapa, na runga i ona ahuatanga, ka hiahiatia etahi tautuhinga. A-tinana, i tika kia tohatohahia he tūmau mariko me te whirihora motuhake, ka wehewehe ranei i etahi momo taiao rerekee ka taea e nga kaupapa te awe tetahi ki tetahi, i runga i te putanga o nga whare pukapuka.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Utauta. He aha ta tatou e whakamahi ai?

  • Docker ake. Ko te Dockerfile e whakaatu ana i nga whakawhirinakitanga o te tono kotahi.
  • Ko te Docker-compose he paihere e whakakotahi ana i a maatau tono Docker.
  • Ka whakamahia e matou a GitLab ki te rokiroki waehere puna.
  • Ka whakamahia e matou a GitLab-CI mo te whakauru punaha.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

E rua nga wahanga o te ripoata.

Ko te waahanga tuatahi ka korero ki a koe me pehea te whakahaere i a Docker i runga i nga miihini a nga kaihanga.

Ko te waahanga tuarua ka korero me pehea te taunekeneke ki a GitLab, me pehea te whakahaere i nga whakamatautau me te pehea e huri ai ki te Staging.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Ko Docker he hangarau e taea ai (ma te whakamahi i te huarahi whakapuaki) ki te whakaahua i nga waahanga e tika ana. He tauira Dockerfile tenei. I konei ka kii matou he taonga tuku iho mai i te ahua Docker mana o Ruby:2.3.0. Kei roto Ruby putanga 2.3 kua whakauruhia. Ka whakauruhia e matou nga whare pukapuka huihuinga me te NodeJS. E whakaahua ana matou kei te hanga whaiaronga /app. Ka tohua e matou te raarangi taupānga hei raarangi mahi. I roto i tenei whaiaronga ka waiho e matou te Gemfile iti me te Gemfile.lock e hiahiatia ana. Katahi ka hanga kaupapa hei whakauru i tenei ahua whakawhirinaki. E tohu ana matou ka reri te ipu ki te whakarongo ki te tauranga o waho 3000. Ko te whakahau whakamutunga ko te whakahau e whakarewa tika ana i ta maatau tono. Mena ka mahia e matou te whakahau whakahaere kaupapa, ka ngana te tono ki te whakahaere me te whakahaere i te whakahau kua tohua.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He tauira iti tenei o te konae tito docker. I tenei keehi, ka whakaatuhia he hononga kei waenga i nga ipu e rua. He tika tenei ki te ratonga papaa raraunga me te ratonga tukutuku. Ko a maatau tono paetukutuku i te nuinga o te waa e hiahia ana etahi momo putunga raraunga hei tuara mo te penapena raraunga. I te mea ka whakamahia e matou a MySQL, ko te tauira kei a MySQL - engari kaore he mea e aukati i a maatau ki te whakamahi i etahi atu putunga raraunga (PostgreSQL, Redis).

Ka tangohia e matou te ahua MySQL 5.7.14 kaore he huringa mai i te puna mana mai i te Docker hub. Ka kohia e matou te ahua e tika ana mo ta matou tono paetukutuku mai i te raarangi o naianei. I te wa o te whakarewatanga tuatahi, ka kohia e ia he ahua mo tatou. Na ka rere te whakahau e mahia ana e matou i konei. Ki te hoki ki muri, ka kite tatou i tautuhia te whakahau whakarewatanga na Puma. Ko Puma he ratonga i tuhia ki Ruby. I te keehi tuarua ka takahia e matou. Ka taea e tenei whakahau te noho noa i runga i o maatau hiahia, mahi ranei.

Ka whakaahua ano matou me tuku te tauranga ki runga i ta matou miihini kaiwhakawhanake mai i te 3000 ki te 3000 te tauranga ipu. Ka mahia tenei ma te whakamahi i nga iptables me ona ake tikanga, kua whakauruhia ki Docker.

Ka taea e te kaiwhakawhanake, pera i mua, te uru atu ki tetahi wahitau IP e waatea ana, hei tauira, 127.0.0.1 te wahitau IP a-rohe, o waho ranei o te miihini.

Ko te rarangi whakamutunga e kii ana ko te ipu tukutuku kei runga i te ipu db. Ina karangahia e matou te ipu tukutuku kia whakarewahia, ma te docker-compose te tuatahi ka whakarewa i te papaunga raraunga ma matou. I te timatanga o te putunga raraunga (i muri i te whakarewatanga o te ipu! Kaore tenei e kii i te reri o te putunga raraunga) ka whakarewahia to tatou tono, to tatou tuara.

Ma tenei ka taea e matou te karo i nga hapa ka kore te papaaarangi i runga, ka taea e matou te penapena rauemi ina whakamutua e matou te ipu raraunga, na reira ka waatea nga rauemi mo etahi atu kaupapa.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He aha ta te whakamahi i te putunga raraunga i runga i tetahi kaupapa e homai ai? Ka tuhia e matou te putanga MySQL mo nga kaihanga katoa. Ma tenei ka taea e koe te karo i etahi hapa ka puta ina rereke nga putanga, ka huri te wetereo, te whirihoranga, me nga tautuhinga taunoa. Ma tenei ka taea e koe te tautuhi i tetahi ingoa kaihautu mo te paataka, takiuru, kupuhipa. Kei te neke atu tatou i te whare kararehe o nga ingoa me nga tautohetohe i roto i nga konae whirihora i mua.

Kei a matou te whai waahi ki te whakamahi i tetahi whirihora tino pai ake mo te taiao Whanaketanga, ka rereke mai i te taunoa. Kua whirihorahia a MySQL ma te taunoa mo nga miihini ngoikore me tana mahi i waho o te pouaka he iti rawa.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Ka taea e Docker te whakamahi i te Python, Ruby, NodeJS, PHP kaiwhakamaori o te putanga e hiahiatia ana. Ka whakakorehia e matou te hiahia ki te whakamahi i etahi momo kaiwhakahaere putanga. I mua, i whakamahia he kete rpm mo Ruby, i taea ai e koe te whakarereke i te putanga i runga i te kaupapa. He mihi ki te ipu Docker, ka taea hoki e koe te neke haere i te waehere me te whakaputa i te taha me nga whakawhirinaki. Karekau he raruraru ki te mohio ki te putanga o te kaiwhakamaori me te waehere. Hei whakahou i te putanga, me whakaheke te ipu tawhito me te whakaara i te ipu hou. Ki te hee, ka taea te whakaheke i te ipu hou, ka hiki te ipu tawhito.

Whai muri i te hanga i te ahua, ka rite tonu nga ipu o te Whanaketanga me te Whakaputa. He tino pono tenei mo nga whakaurunga nui.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI I mua ka whakamahia e matou a JavaScipt me NodeJS.

Inaianei kei a maatau te kaupapa whakamutunga mo ReacJS. I whakarewahia e te kaiwhakawhanake nga mea katoa i roto i te ipu ka whakawhanakehia ma te whakamahi i te wera-reload.

I muri mai, ka whakarewahia te mahi o te whakahiato JavaScipt ka tukuna te waehere kua kohia ma te nginx, hei penapena rauemi.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

I konei kua hoatu e ahau he hoahoa o to maatau kaupapa hou.

He aha nga raruraru i whakaotihia e koe? I hiahia matou ki te hanga i tetahi punaha e mahi tahi ai nga taputapu pūkoro. Ka whiwhi raraunga ratou. Ko tetahi o nga mea ka taea ko te tuku panui pana ki tenei taputapu.

He aha ta matou mahi mo tenei?

I wehea e matou te tono ki nga waahanga e whai ake nei: he waahanga whakahaere i roto i te JS, he tuara e mahi ana ma te atanga REST i raro i a Ruby on Rails. Ka mahi tahi a Backend me te papaunga raraunga. Ko te hua ka puta ka tukuna ki te kaihoko. Ka mahi tahi te röpü whakahaere me te tuara me te papa raraunga ma te atanga REST.

I hiahia ano matou ki te tuku panui Push. I mua i tenei, he kaupapa ta matou i whakatinanahia ai he tikanga hei kawe whakamohiotanga ki nga papaa waea.

Kua whakawhanakehia e matou te kaupapa e whai ake nei: ko te kaiwhakahaere mai i te kaitirotiro e mahi tahi ana me te roopu whakahaere, ka taunekeneke te roopu whakahaere me te tuara, ko te mahi ko te tuku panui Push.

Ko nga whakamohiotanga pana e mahi tahi ana me tetahi atu waahanga e whakatinanahia ana i NodeJS.

Ka hangaia nga rarangi ka tukuna nga panui kia rite ki o raatau ake tikanga.

E rua nga papaa raraunga ka tuhia ki konei. I tenei wa, ma te whakamahi i a Docker, ka whakamahi matou i nga papaaarangi motuhake e 2 e kore e hono tetahi ki tetahi. I tua atu i te mea he whatunga mariko noa ta ratou, a ko nga raraunga tinana kei te rongoa i roto i nga raarangi rereke i runga i te miihini a te kaiwhakawhanake.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Ko te mea ano engari i roto i nga tau. He mea nui ki konei te whakamahi ano i te waehere.

Mena i mua i korero matou mo te whakamahi ano i te waehere i roto i te ahua o nga whare pukapuka, na i tenei tauira ko ta maatau ratonga, e whakautu ana ki nga whakamohiotanga Push, ka whakamahia ano hei tūmau oti. Ka whakaratohia he API. Na to tatou whanaketanga hou e taunekeneke ana ki a ia.

I tera wa kei te whakamahi matou i te putanga 4 o NodeJS. Inaianei (i 2017 - tuhipoka a te ētita) i roto i o maatau whanaketanga hou ka whakamahia e matou te putanga 7 o NodeJS. Kaore he raruraru i roto i nga waahanga hou ki te whakauru i nga putanga hou o nga whare pukapuka.

Mena e tika ana, ka taea e koe te whakahou me te whakaara i te putanga NodeJS o te ratonga panui Push.

Mena ka taea e taatau te pupuri i te hototahi API, katahi ka taea te whakakapi me etahi atu kaupapa i whakamahia i mua.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He aha e hiahia ana koe ki te taapiri i a Docker? Ka taapirihia he Dockerfile ki ta maatau putunga, e whakaatu ana i nga whakawhirinakitanga e tika ana. I tenei tauira, ka wehewehea nga waahanga i runga i te arorau. Koinei te kete iti mo te kaiwhakawhanake tuara.

I te wa e hanga ana he kaupapa hou, ka hangaia he Dockerfile me te whakaahua i te rauwiringa kaiao e hiahiatia ana (Python, Ruby, NodeJS). I roto i te docker-compose, e whakaahua ana i te ti'aturi e tika ana - te papaunga raraunga. E whakaahua ana matou e hiahia ana matou ki tetahi putunga korero mo tera me tera momo putanga, hei penapena raraunga ki reira, ki reira.

Ka whakamahia e matou he ipu tuatoru motuhake me te nginx hei mahi i nga ihirangi pateko. Ka taea te tuku pikitia. Ka tukuna e te tuara ki roto i te rōrahi kua oti te whakarite, ka whakauruhia ki roto i te ipu me te nginx, e whakarato ana i nga raraunga pateko.

Hei penapena i te nginx me te whirihoranga mysql, ka taapirihia e matou he kōpaki Docker kei roto i a maatau nga whirihora e tika ana. Ina hanga e te kaiwhakawhanake he git clone o te putunga ki runga i tana miihini, kua reri tonu tana kaupapa mo te whanaketanga o te rohe. Karekau he patai mo te tauranga, ko tehea tautuhinga ranei hei tono.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

I muri mai he maha nga waahanga: kaiwhakahaere, info-API, panui panui.

Hei whakarewa i enei mea katoa, i hanga e matou tetahi atu putunga e kiia nei ko dockerized-app. I tenei wa ka whakamahia e matou nga putunga maha mo ia waahanga. He rereke noa iho - kei GitLab te ahua he kōpaki, engari i runga i te miihini a te kaiwhakawhanake he rite te ahua ki te kōpaki mo tetahi kaupapa motuhake. Ko tetahi taumata kei raro ko nga waahanga ka whakakotahihia.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He tauira tenei o nga korero o te dockerized-app. Ka tuu ano he raarangi Docker ki konei, ka whakakiia e matou nga whirihoranga e hiahiatia ana mo nga taunekeneke o nga waahanga katoa. He README.md e whakaatu poto ana me pehea te whakarewa i te kaupapa.

I konei kua tonohia e matou nga konae tito docker e rua. Ka mahia tenei kia taea ai te whakarewa i nga waahanga. Ina mahi te kaiwhakawhanake me te kernel, kaore ia e hiahia whakamohiotanga Push, ka tukuna noa e ia te konae docker-compose, na reira, ka tiakina nga rauemi.

Mena he hiahia mo te whakauru ki nga panui Push, ka whakarewahia te docker-compose.yaml me te docker-compose-push.yaml.

I te mea kei te kōpaki te docker-compose.yaml me te docker-compose-push.yaml, ka hanga aunoatia he whatunga mariko kotahi.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Whakaahuatanga o nga waahanga. He kōnae tino matatau ake te kawenga mo te kohikohi i nga waahanga. He aha te mea whakamiharo i konei? I konei ka whakauruhia e matou te waahanga pauna.

He ahua Docker kua rite tenei e whakahaere ana i te nginx me tetahi tono e whakarongo ana ki te turanga Docker. He hihiko, i te mea ka whakaka, ka whakawetohia nga ipu, ka whakahouhia te whirihora nginx. Ka tohatohahia e matou te whakahaere o nga waahanga ma te whakamahi i nga ingoa rohe taumata-tuatoru.

Mo te taiao Whanaketanga ka whakamahia e matou te rohe .dev - api.informer.dev. Ko nga tono whai rohe .dev e waatea ana i runga i te miihini a te kaiwhakawhanake.

Katahi ka whakawhitia nga whirihora ki ia kaupapa, ka whakarewahia nga kaupapa katoa i te wa kotahi.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Mena ka whakaahuahia e maatau, ka puta ko te kaihoko ko to maatau kaitirotiro, tetahi momo taputapu ranei e tono ai matou ki te kaitaurite.

Ka whakatauhia e te taurite ko wai te ipu me uru mai i runga i te ingoa rohe.

Koinei pea te nginx, e whakarato ana i te JS ki te papa whakahaere. Ka taea tenei ma te nginx, e whakarato ana i te API, i nga konae pateko ranei, e whakaratohia ana e te nginx i te ahua o te utaina o nga whakaahua.

E whakaatu ana te hoahoa kei te hono nga ipu ki tetahi whatunga mariko ka huna ki muri i te takawaenga.

I runga i te miihini a te kaiwhakawhanake, ka taea e koe te uru ki te ipu ma te mohio ki te IP, engari ko te tikanga kaore matou e whakamahi i tenei. Karekau he hiahia mo te whakapiri tika.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He aha te tauira me titiro au ki te whakamau i taku tono? Ki taku whakaaro, he tauira pai ko te ahua docker mana mo MySQL.

He tino uaua. He maha nga putanga. Engari ko tana mahi ka taea e koe te whakatutuki i nga hiahia maha ka ara ake i roto i nga mahi whanaketanga. Mena ka tango koe i te wa me te mohio ki te taunekeneke katoa, ka whakaaro ahau kaore koe e raru ki te whakatinana i a koe ano.

Ko te Hub.docker.com te tikanga kei roto nga hononga ki te github.com, kei reira nga raraunga mata e tukuna tika mai ana ka taea e koe te hanga whakaahua.

I tua atu i tenei putunga he tuhinga docker-endpoint.sh, kei a ia te kawenga mo te tiimatanga tuatahi me te tukatuka ano mo te whakarewatanga tono.

I roto ano i tenei tauira ka taea te whirihoranga ma te whakamahi i nga taurangi taiao. Ma te tautuhi i te taurangi taiao i te wa e whakahaere ana i te ipu kotahi, na roto ranei i te docker-compose, ka taea e tatou te kii me whakatakoto he kupuhipa kau mo te docker mo te pakiaka ki runga MySQL me nga mea katoa e hiahia ana tatou.

He he he kōwhiringa ki te hanga i te kupuhipa tupurangi. E kii ana matou me hiahia he kaiwhakamahi, me whakatakoto he kupu huna mo te kaiwhakamahi, me hanga he putunga raraunga.

I roto i a maatau kaupapa, kua whakakotahihia e matou te Dockerfile, kei a ia te kawenga mo te arawhiti. I reira ka whakatikahia e matou ki o maatau hiahia ki te whakawhānui noa i nga mana kaiwhakamahi e whakamahia ana e te tono. Na tenei i taea ai te hanga noa he papaa raraunga mai i te papatohu tono a muri ake nei. Ko nga tono Ruby he tono mo te hanga, te whakarereke, me te whakakore i nga papaunga raraunga.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He tauira tenei mo te ahua o te putanga motuhake o MySQL i runga i te github.com. Ka taea e koe te whakatuwhera i te Dockerfile ka kite me pehea te whakaurunga ki reira.

docker-endpoint.sh hōtuhi kawenga mō te wāhi urunga. I te aratakitanga tuatahi, ka hiahiatia etahi mahi whakarite me enei mahi katoa kei roto i te tuhinga arawhiti.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Me neke atu ki te wahanga tuarua.

I huri matou ki te gitlab ki te penapena waehere puna. He punaha tino kaha tenei he atanga tirohanga.

Ko tetahi o nga waahanga Gitlab ko Gitlab CI. Ka taea e koe te whakaahua i te raupapa o nga whakahau ka whakamahia i muri mai ki te whakarite i tetahi punaha tuku waehere, ki te whakahaere whakamatautau aunoa ranei.

Ripoata mo Gitlab CI 2 https://goo.gl/uohKjI — Ko te purongo mai i te karapu Ruby Russia he tino taipitopito, he pai pea ki a koe.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Inaianei ka titiro tatou ki nga mea e hiahiatia ana hei whakahohe i a Gitlab CI. Hei whakarewa i te Gitlab CI, me whakauru noa te konae .gitlab-ci.yml ki te putake o te kaupapa.

I konei ka whakaahuahia e hiahia ana matou ki te mahi i te raupapa o nga ahuatanga penei i te whakamatautau, te tuku.

Ka mahia e matou nga tuhinga e karanga tika ana ki te hanga docker-compose o to maatau tono. He tauira tenei o te tuara noa.

I muri mai ka kii matou he mea tika ki te whakahaere i nga hekenga ki te whakarereke i te paataka korero me te whakahaere i nga whakamatautau.

Mena ka mahia tika nga tuhinga me te kore e whakahoki i te waehere hapa, ka haere te punaha ki te waahanga tuarua o te tuku.

I tenei wa ka whakatinanahia te waahi tuku mo te waahi. Karekau matou i whakarite i te whakaara ano i te waa-kore.

Ka tineihia e matou nga ipu katoa, katahi ka whakaarahia ano nga ipu katoa, ka kohia i te wa tuatahi i te whakamatautau.

Me whakahaere e tatou nga hekenga raraunga i tuhia e nga kaihanga mo te taiao rereke o naianei.

He tuhipoka me tono noa tenei ki te peka matua.

Kaore e mahi i te wa e huri ana i etahi atu manga.

Ka taea te whakarite i nga roopu ki te taha o nga manga.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Hei whakarite ake i tenei, me whakauru tatou i a Gitlab Runner.

Kua tuhia tenei taputapu ki Golang. He konae kotahi noa i te ao o Golang, kaore e hiahiatia he whakawhirinaki.

I te tiimata ka rehita matou i a Gitlab Runner.

Ka whiwhi tatou i te matua ki te atanga paetukutuku Gitlab.

Na ka karangahia te whakahau arawhiti i runga i te raina whakahau.

Whirihorahia ana a Gitlab Runner i te aratau korero (Shell, Docker, VirtualBox, SSH)

Ko te waehere i runga i te Gitlab Runner ka mahia i runga i ia mahi i runga i te tautuhinga .gitlab-ci.yml.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He pehea te ahua o te titiro ki a Gitlab i te atanga tukutuku. Whai muri i te hono atu ki a GItlab CI, kei a matou he haki e whakaatu ana he aha te ahua o te hanga i tenei wa.

Ka kite tatou i te 4 meneti ki muri i mahia he mahi i tutuki i nga whakamatautau katoa kaore he raru.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Ka taea e tatou te titiro ki nga hanganga i roto i nga korero taipitopito. I konei ka kite tatou e rua nga kawanatanga kua pahemo. Te mana whakamatautau me te mana tuku i te waahi.

Ki te paato tatou i runga i te hanga motuhake, ka puta mai he putanga whakamaarama o nga whakahau i whakarewahia i roto i te tukanga e ai ki te .gitlab-ci.yml.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Koinei te ahua o te korero mo a maatau hua. Ka kite tatou kua angitu nga whakamatautau. Ka tukuna nga whakamatautau, kaore e neke ki te waahanga e whai ake nei, kaore ano kia whakahoutia te waehere waahi.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He aha nga raruraru i whakaotihia e matou i te wa i whakatinanahia e matou te docker? Ko nga waahanga kei roto i ta maatau punaha me timata ano etahi o nga waahanga kua whakahoutia i roto i te putunga, kaua ko te punaha katoa.

Ki te mahi i tenei, me wehe e matou nga mea katoa ki nga kōpaki motuhake.

I muri i ta maatau mahi, i raru matou na te mea ka hangaia e Docker-compose tana ake mokowā whatunga mo ia kōpaki, kaore e kite i nga waahanga o tona hoa tata.

Hei huri haere, i hangaia e maatau te whatunga ki Docker. I roto i te Docker-compose i tuhia me whakamahi koe i taua whatunga mo tenei kaupapa.

Na, ko ia waahanga ka tiimata me tenei mata ka kite i nga waahanga kei etahi atu waahanga o te punaha.

Ko te raruraru e whai ake nei ko te wehewehe i te waahi i waenga i nga kaupapa maha.

I te mea ko enei mea katoa he ahua ataahua me te tata ki te hanga, he pai ki te whakamahi i te tauranga 80, 443 ranei, e whakamahia ana i nga waahi katoa o te WEB.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

I pehea ta matou whakaoti i tenei? I whakawhiwhia e matou tetahi Gitlab Runner ki nga kaupapa nui katoa.

Ma Gitlab ka taea e koe te whakarewa i te maha o nga Kaiwhaiwhai Gitlab kua tohatohahia, ma te tango i nga mahi katoa i roto i te raupapa ohorere ka whakahaere.

Hei karo i nga raruraru o te whare, i whakawhäitihia e mätou te roopu o a mätou kaupapa ki te kotahi Gitlab Runner, e kaha ana ki a maatau pukapuka kaore he raruraru.

I nukuhia e matou te nginx-proxy ki roto i tetahi tuhinga whakarewatanga motuhake ka tuhia nga matiti o nga kaupapa katoa ki roto.

Kotahi te matiti o ta maatau kaupapa, a he maha nga matiti a te taurite i runga i nga ingoa kaupapa. Ka taea e ia te takawaenga ma nga ingoa rohe.

Ka tae mai a maatau tono ma te rohe i runga i te tauranga 80 ka whakatauhia ki tetahi roopu ipu e mahi ana i tenei rohe.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He aha etahi atu raruraru i reira? Koinei te mea e rere ana nga ipu katoa hei pakiaka ma te taunoa. Ko tenei te punaha pakiaka koretake o te punaha.

Heoi, ki te uru koe ki roto i te ipu, ka whai pakiaka, ka whiwhi mana pakiaka te konae ka hangaia e matou ki tenei ipu.

Mena ka uru tetahi kaiwhakawhanake ki roto i te ipu me te tuku i etahi whakahau ki reira i hanga ai nga konae, katahi ka waiho i te ipu, katahi kei roto i tana raarangi mahi he konae karekau e uru atu.

Me pehea e whakatau ai? Ka taea e koe te taapiri i nga kaiwhakamahi kei roto i te ipu.

He aha nga raru i puta mai i te taapiri i te kaiwhakamahi?

I te wa e hanga ana he kaiwhakamahi, ko te ID roopu (UID) me te ID kaiwhakamahi (GID) kaore i te rite.

Hei whakaoti i tenei raru i roto i te ipu ka whakamahia e matou nga kaiwhakamahi whai ID 1000.

I roto i ta maatau take, i rite tenei ki te meka ko te nuinga o nga kaiwhakawhanake e whakamahi ana i te Ubuntu OS. A i roto i te Ubuntu OS he ID 1000 te kaiwhakamahi tuatahi.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

He mahere ta tatou?

Panuihia ano te tuhinga Docker. Kei te kaha te whanake o te kaupapa, kei te huri haere nga tuhinga. Ko nga raraunga i whiwhi i nga marama e rua, e toru ranei kua pahure ake nei kei te ngaro haere.

Ko etahi o nga raruraru i whakatauhia e maatau kua oti kee i nga tikanga paerewa.

Ka tino pirangi ahau ki te neke whakamua me te neke tika ki te mahi orchestra.

Ko tetahi tauira ko te hanga-hanga a Docker e kiia nei ko Docker Swarm, ka puta mai i te pouaka. Kei te pirangi au ki te whakarewa i tetahi mea i roto i te hanga i runga i te hangarau Docker Swarm.

Ko nga ipu whakawhanaunga ka kore e pai te mahi me nga rakau. Inaianei kua wehea nga rakau. Ka marara ki roto i nga ipu. Ko tetahi o nga mahi ko te whai waahi ki nga raarangi ma te atanga tukutuku.

Te whakawhanaketanga me te tukanga whakamatautau me Docker me Gitlab CI

Source: will.com

Tāpiri i te kōrero