ProHoster > Blog > Rianachd > A’ cleachdadh docker ioma-ìre gus ìomhaighean uinneagan a thogail
A’ cleachdadh docker ioma-ìre gus ìomhaighean uinneagan a thogail
Hi uile! Is e m’ ainm Andrey, agus tha mi ag obair mar innleadair DevOps aig Exness anns an sgioba leasachaidh. Tha mo phrìomh ghnìomhachd co-cheangailte ri togail, cleachdadh agus taic a thoirt do thagraidhean ann an docker fo shiostam obrachaidh Linux (ris an canar an OS an-seo). Chan eil fada air ais bha obair agam leis na h-aon ghnìomhachdan, ach b’ e Windows Server agus seata de phròiseactan C ++ an targaid OS den phròiseact. Dhòmhsa, b’ e seo a’ chiad eadar-obrachadh dlùth le soithichean docker fo Windows OS agus, san fharsaingeachd, le tagraidhean C ++. Taing dha seo, bha eòlas inntinneach agam agus dh’ ionnsaich mi mu chuid de cho duilich ‘s a tha e a bhith a’ stòradh thagraidhean ann an Windows.
San artaigil seo tha mi airson innse dhut dè na duilgheadasan a bh ’agam agus mar a fhuair mi air am fuasgladh. Tha mi an dòchas gum bi seo cuideachail airson na dùbhlain a th’ agad an-dràsta agus san àm ri teachd. Faigh tlachd bho leughadh!
Carson a tha soithichean?
Tha bun-structar aig a’ chompanaidh mar-thà airson orchestrator container Hashicorp Nomad agus pàirtean co-cheangailte ris - Consul and Vault. Mar sin, chaidh còmhdach tagraidh a thaghadh mar dhòigh aonaichte airson fuasgladh iomlan a lìbhrigeadh. Leis gu bheil luchd-aoigheachd docker ann am bun-structar a ’phròiseict le dreachan Windows Server Core OS 1803 agus 1809, feumar dreachan eadar-dhealaichte de dh’ ìomhaighean docker a thogail airson 1803 agus 1809. Ann an dreach 1803, tha e cudromach cuimhneachadh gu bheil àireamh ath-sgrùdaidh an neach-aoigheachd togail docker feumaidh iad a bhith co-ionnan ri àireamh ath-sgrùdaidh ìomhaigh a' bhunait docker agus an òstair far an tèid an soitheach bhon ìomhaigh seo a chur air bhog. Chan eil an leithid de tharraing air ais ann an dreach 1809. Faodaidh tu barrachd a leughadh an seo.
Carson ioma-ìre?
Chan eil cothrom no glè bheag aig innleadairean sgioba leasachaidh air luchd-aoigheachd togail; chan eil dòigh ann air an t-seata de cho-phàirtean a riaghladh gu sgiobalta airson tagradh a thogail air na h-aoighean sin, mar eisimpleir, cuir a-steach inneal no eallach obrach a bharrachd airson Visual Studio. Mar sin, rinn sinn co-dhùnadh na pàirtean gu lèir a chuir a-steach a bha riatanach gus an tagradh a thogail a-steach don ìomhaigh togail Docker. Ma tha feum air, faodaidh tu dìreach am faidhle docker atharrachadh gu sgiobalta agus an loidhne-phìoban airson an ìomhaigh seo a chruthachadh a chuir air bhog.
Bho theòiridh gu gnìomh
Ann an togail ìomhaigh ioma-ìre Docker air leth freagarrach, tha an àrainneachd airson an tagradh a thogail air ullachadh anns an aon sgriobt Dockerfile mar a tha an tagradh fhèin air a thogail. Ach anns a 'chùis againn, chaidh ceangal eadar-mheadhanach a chur ris, is e sin, an ìre tòiseachaidh de bhith a' cruthachadh ìomhaigh docker leis a h-uile dad a tha riatanach gus an tagradh a thogail. Chaidh seo a dhèanamh oir bha mi airson am feart tasgadan docker a chleachdadh gus ùine stàlaidh a h-uile eisimeileachd a lughdachadh.
Nach toir sinn sùil air prìomh phuingean an sgriobt dockerfile airson an ìomhaigh seo a chruthachadh.
Gus ìomhaighean de dhreachan OS eadar-dhealaichte a chruthachadh, faodaidh tu argamaid a mhìneachadh anns an dockerfile tro bheil àireamh an tionndaidh air a thoirt seachad rè an togail, agus is e cuideachd taga na h-ìomhaigh bhunaiteach.
Gheibhear liosta iomlan de thagaichean ìomhaigh Microsoft Windows Server an seo.
ARG WINDOWS_OS_VERSION=1809
FROM mcr.microsoft.com/windows/servercore:$WINDOWS_OS_VERSION
Gu gnàthach, na h-òrdughan anns an stiùireadh RUN taobh a-staigh an dockerfile air Windows OS tha iad air an cur gu bàs anns a’ chonsail cmd.exe. Airson goireasachd a bhith a’ sgrìobhadh sgriobtaichean agus a’ leudachadh comas-gnìomh nan òrduighean a thathar a’ cleachdadh, nì sinn ath-mhìneachadh air a’ chonsail cur an gnìomh àithne ann an Powershell tron stiùireadh SHELL.
Gus pacaidean a chuir a-steach le chocolatey, faodaidh tu dìreach an toirt seachad mar liosta, no an stàladh aon aig aon àm ma dh'fheumas tu a dhol seachad air crìochan sònraichte airson gach pasgan. Anns an t-suidheachadh againn, chleachd sinn faidhle follaiseach ann an cruth XML, anns a bheil liosta de phasganan riatanach agus na crìochan aca. Tha an t-susbaint aige a’ coimhead mar seo:
An ath rud, bidh sinn a’ stàladh àrainneachd togail an tagraidh, is e sin, MS Build Tools 2019 - is e dreach aotrom a tha seo de Visual Studio 2019, anns a bheil an seata de cho-phàirtean as ìsle a tha riatanach airson còd a chuir ri chèile.
Gus obrachadh gu h-iomlan leis a’ phròiseact C ++ againn, bidh feum againn air co-phàirtean a bharrachd, is iad sin:
Uallach obrach C ++ innealan
Inneal-lìonaidh v141
Windows 10 SDK (10.0.17134.0)
Faodaidh tu seata innealan leudaichte a chuir a-steach gu fèin-ghluasadach a’ cleachdadh faidhle rèiteachaidh ann an cruth JSON. Susbaint an fhaidhle rèiteachaidh:
Gheibhear liosta iomlan de na pàirtean a tha rim faighinn air làrach-lìn nan sgrìobhainnean Microsoft Visual Studio.
Bidh an dockerfile a’ ruith an sgriobt stàlaidh, agus airson goireasachd, cuiridh e an t-slighe gu faidhlichean so-ghnìomhaichte innealan togail gu caochladair na h-àrainneachd PATH. Tha e ciallach cuideachd faidhlichean agus clàran neo-riatanach a thoirt air falbh gus meud na h-ìomhaigh a lughdachadh.
Aig an ìre seo, tha an ìomhaigh againn airson an tagradh C ++ a chuir ri chèile deiseil, agus is urrainn dhuinn a dhol air adhart gu dìreach gu bhith a’ cruthachadh docker ioma-ìre togail den tagradh.
Ioma-ìre ann an gnìomh
Cleachdaidh sinn an ìomhaigh chruthaichte leis na h-innealan uile air bòrd mar ìomhaigh togail. Mar a bha san sgriobt dockerfile roimhe, cuiridh sinn ris a’ chomas àireamh an tionndaidh / taga ìomhaigh a shònrachadh gu dinamach airson ath-chleachdadh còd gu furasta. Tha e cudromach suaicheantas a chur ris as builder gu ìomhaigh a’ cho-chruinneachaidh anns an stiùireadh FROM.
ARG WINDOWS_OS_VERSION=1809
FROM buildtools:$WINDOWS_OS_VERSION as builder
A-nis tha an t-àm ann an tagradh a thogail. Tha a h-uile dad an seo gu math sìmplidh: dèan lethbhreac den chòd stòr agus a h-uile càil co-cheangailte ris, agus tòisich air a’ phròiseas cruinneachaidh.
Is e an ìre mu dheireadh de bhith a’ cruthachadh an ìomhaigh dheireannaich ìomhaigh bhunaiteach an tagraidh a shònrachadh, far am bi a h-uile artifact cruinneachaidh agus faidhle rèiteachaidh suidhichte. Gus lethbhreac a dhèanamh de fhaidhlichean cruinnichte bhon ìomhaigh co-chruinneachaidh eadar-mheadhanach, feumaidh tu am paramadair a shònrachadh --from=builder anns an stiùireadh COPY.
FROM mcr.microsoft.com/windows/servercore:$WINDOWS_OS_VERSION
COPY --from=builder C:/x64/Release/myapp/ ./
COPY ./configs ./
A-nis chan eil air fhàgail ach na h-eisimeileachd riatanach a chuir ris airson an tagradh againn a bhith ag obair agus an àithne tòiseachaidh a shònrachadh tron stiùireadh ENTRYPOINT no CMD.
co-dhùnadh
San artaigil seo, bhruidhinn mi air mar a chruthaicheas tu àrainneachd cruinneachaidh làn-chuimseach airson tagraidhean C ++ taobh a-staigh soitheach fo Windows agus mar a chleachdas tu comasan togail ioma-ìre docker gus ìomhaighean làn-chuimseach den tagradh againn a chruthachadh.