ProHoster > Blog > Pulega > Fa'aaogā fa'ato'aga fa'ato'aga e fausia ai ata fa'amalama
Fa'aaogā fa'ato'aga fa'ato'aga e fausia ai ata fa'amalama
Talofa uma! O loʻu igoa o Andrey, ma ou te galue o se inisinia DevOps i Exness i le au atinaʻe. O laʻu gaioiga autu e fesoʻotaʻi ma le fausiaina, faʻapipiʻiina ma le lagolagoina o talosaga i le docker i lalo o le Linux operating system (lea e taʻua mulimuli ane o le OS). E leʻi leva talu ai sa i ai saʻu galuega ma gaioiga tutusa, ae o le OS faʻamoemoe o le poloketi o le Windows Server ma se seti o galuega C ++. Mo aʻu, o le fesoʻotaʻiga vavalalata muamua lea ma pusa faʻatau i lalo ole Windows OS ma, i se tulaga lautele, faʻatasi ai ma C ++ talosaga. Faʻafetai i lenei mea, na ou maua ai se mea manaia ma aʻoaʻo e uiga i nisi o faʻalavelave o le faʻapipiʻiina o talosaga i Windows.
I lenei tusiga ou te fia taʻu atu ia te oe mea faigata na ou feagai ma le auala na ou foia ai. Ou te faʻamoemoe e fesoasoani lenei mea mo ou luitau i le taimi nei ma le lumanaʻi. Fiafia faitau!
Aisea e teu ai pusa?
O loʻo i ai i le kamupani atinaʻe o loʻo i ai mo le Hashicorp Nomad container orchestrator ma vaega faʻapitoa - Consul ma Vault. O le mea lea, o le containerization talosaga na filifilia e avea o se auala tuʻufaʻatasia mo le tuʻuina atu o se fofo atoatoa. Talu ai o le atinaʻe o le poloketi o loʻo i ai 'au faʻapipiʻi faʻatasi ma Windows Server Core OS versions 1803 ma 1809, e manaʻomia le fausiaina o faʻasalalauga eseese o ata faʻailoga mo le 1803 ma le 1809. I le version 1803, e taua le manatua o le numera toe iloilo o le fale fau fale. e tatau ona fetaui ma le numera toe fuata'i o le fa'ailoga fa'avae fa'amaufa'ailoga ma le talimalo lea o le a fa'alauiloa ai le atigipusa mai lenei ata. Version 1809 e leai se faaletonu faapena. E mafai ona e faitau atili iinei.
Aisea e tele-tulaga?
E leai se avanoa e fausia ai 'au; e leai se auala e vave faʻatautaia ai le seti o vaega mo le fausiaina o se talosaga i luga o nei 'au, mo se faʻataʻitaʻiga, faʻapipiʻi se meafaigaluega faaopoopo poʻo se galuega mo Visual Studio. O le mea lea, na matou faia ai le filifiliga e faʻapipiʻi uma vaega e manaʻomia e fausia ai le talosaga i totonu o le ata fausia Docker. Afai e manaʻomia, e mafai ona e vave suia naʻo le dockerfile ma faʻalauiloa le paipa mo le fatuina o lenei ata.
Mai le talitonuga i le faatinoga
I se fausaga sili ona lelei Docker multi-stage image, o le siosiomaga mo le fausiaina o le talosaga ua saunia i le Dockerfile script tutusa e pei ona fausia ai le talosaga lava ia. Ae i la matou tulaga, na faʻaopoopoina se fesoʻotaʻiga vavalalata, o lona uiga, o le laasaga muamua o le fatuina o se ata faʻailoga ma mea uma e manaʻomia e fausia ai le talosaga. Na faia lenei mea ona sa ou manaʻo e faʻaoga le faʻaogaina o le docker cache e faʻaitiitia ai le taimi faʻapipiʻi o faʻalagolago uma.
Sei o tatou vaʻai i manatu autu o le dockerfile script mo le fatuina o lenei ata.
Ina ia fatuina ata o ituaiga OS eseese, e mafai ona e faʻamatalaina se finauga i le dockerfile lea e pasia ai le numera numera i le taimi o le fausiaina, ma o le pine foi lea o le ata faavae.
E mafai ona maua se lisi atoa o pine ata Microsoft Windows Server iinei.
ARG WINDOWS_OS_VERSION=1809
FROM mcr.microsoft.com/windows/servercore:$WINDOWS_OS_VERSION
E ala i le faaletonu o poloaiga i faatonuga RUN i totonu o le dockerfile i luga o le Windows OS o loʻo faʻatinoina i le cmd.exe faʻamafanafanaga. Mo le faʻafaigofieina o le tusiaina o tusitusiga ma faʻalauteleina le faʻatinoga o poloaiga na faʻaaogaina, o le a matou toe faʻamalamalamaina le faʻatonuga faʻatonuga i Powershell e ala i le faʻatonuga. SHELL.
Ina ia fa'apipi'i afifi e fa'aaoga ai sukalati, e mafai lava ona e pasi e fai ma lisi, pe fa'apipi'i ta'i tasi pe a mana'omia le pasi fa'ailoga tulaga ese mo afifi ta'itasi. I lo matou tulaga, matou te faʻaaogaina se faila faʻaalia i le XML format, lea e aofia ai se lisi o afifi manaʻomia ma a latou faʻasologa. O mea i totonu e pei o lenei:
O le isi, matou te faʻapipiʻiina le siosiomaga faufale, e taʻua, MS Build Tools 2019 - o se faʻataʻitaʻiga mama lea o le Visual Studio 2019, o loʻo i ai le seti pito manaʻomia o vaega mo le tuʻufaʻatasia o code.
Ina ia galulue atoatoa ma la matou poloketi C ++, matou te manaʻomia nisi vaega, e pei o:
Galuega C++ meafaigaluega
Meafaigaluega v141
Pupuni 10 SDK (10.0.17134.0)
E mafai ona e faʻapipiʻi se seti faʻalauteleina o meafaigaluega e faʻaaoga ai se faila faʻatulagaina i le JSON format. Fa'atonu faila i totonu:
O se lisi atoa o vaega avanoa e mafai ona maua i luga o le upega tafa'ilagi Microsoft Visual Studio.
O le dockerfile e faʻatautaia le faʻapipiʻiina o tusitusiga, ma mo le faʻaogagofie, faʻaopoopo le ala i le fausiaina o meafaigaluega faila faila i le fesuiaiga o le siosiomaga PATH. E fautuaina foi e aveese faila e le manaʻomia ma directories e faʻaitiitia ai le tele o le ata.
I lenei laʻasaga, ua saunia la matou ata mo le tuʻufaʻatasia o le C ++ talosaga, ma e mafai ona matou faʻagasolo saʻo i le fatuina o se faʻailoga faʻapipiʻi tele o le talosaga.
Laasaga tele i le faatinoga
O le a matou faʻaogaina le ata na faia ma meafaigaluega uma i luga o le laupapa e fai ma ata fau. E pei o le tusiga dockerfile talu ai, o le a matou faʻaopoopoina le malosi e faʻamaonia ai le numera numera / ata faʻailoga mo le faigofie o le toe faʻaogaina. E taua le fa'aopoopoina o se fa'ailoga as builder i le ata o le faapotopotoga i faatonuga FROM.
ARG WINDOWS_OS_VERSION=1809
FROM buildtools:$WINDOWS_OS_VERSION as builder
Ua oo i le taimi e fausia ai le talosaga. O mea uma iinei e faigofie lava: kopi le code source ma mea uma e fesoʻotaʻi ma ia, ma amata le faʻagasologa o le tuʻufaʻatasia.
O le laasaga mulimuli o le fatuina o le ata mulimuli o le faʻamaonia lea o le ata autu o le talosaga, lea o le a tuʻu uma ai mea faʻapipiʻi ma faila faila. Ina ia kopi faila tuʻufaʻatasia mai le ata faʻapotopotoga vavalalata, e tatau ona e faʻamaonia le parakalafa --from=builder i faatonuga COPY.
FROM mcr.microsoft.com/windows/servercore:$WINDOWS_OS_VERSION
COPY --from=builder C:/x64/Release/myapp/ ./
COPY ./configs ./
O mea uma e totoe o le faʻaopoopoina lea o faʻalagolago e manaʻomia mo la tatou talosaga e galue ma faʻamaonia le faʻatonuga faʻalauiloa e ala i faatonuga ENTRYPOINT poʻo CMD.
iʻuga
I totonu o lenei tusiga, na ou talanoa e uiga i le faʻaogaina o se siosiomaga tuʻufaʻatasia atoatoa mo C ++ talosaga i totonu o se atigipusa i lalo o Windows ma pe faʻapefea ona faʻaogaina le gafatia o docker multi-stage builds e fatu ai ata atoatoa o la tatou talosaga.