Sawirro Docker-yar oo naftooda rumaystay*

[Tixraaca sheeko-xariirada carruurta Maraykanka "Matoorka yar ee awooda" - qiyaastii. waddo]*

Sawirro Docker-yar oo naftooda rumaystay*

Sida si toos ah loogu abuuro sawirro Docker yar baahiyahaaga

Wasli aan caadi ahayn

Labadii bilood ee la soo dhaafay, waxaan aad ugu mashquulsanaa sida uu u yar yahay sawirka Docker-ka oo uu weli codsigu u socdo?

Waan fahmay, fikraddu waa yaab.

Kahor intaanan u gelin faahfaahinta iyo farsamada, waxaan jeclaan lahaa inaan sharaxo sababta dhibaatadani ay ii dhibtay, iyo sida ay adiga kuu khusayso.

Waa maxay sababta cabbirku muhiim u yahay

Markaan yareyno waxa ku jira sawirka Docker, waxaan hoos u dhigaynaa liiska dayacanka. Intaa waxaa dheer, waxaan ka dhigi sawirada nadiif ah, sababtoo ah waxay ka kooban yihiin kaliya waxa loo baahan yahay si loo socodsiiyo codsiyada.

Waxaa jira hal faa'iido yar oo dheeraad ah - sawirada si dhakhso ah ayaa loo soo dejiyaa, laakiin, fikradayda, tani maaha mid muhiim ah.

Fadlan ogow: Haddii aad ka welwelsan tahay cabbirka, Alpine waxay u egtahay inay yar yihiin waxayna u badan tahay inay kugu habboon tahay.

Sawirro aan burbursanayn

Mashruuca Distroless waxay ku siinaysaa xulashada sawirada aasaasiga ah ee "dabacsan", kuma jiraan maamulayaasha baakadaha, qolofka iyo adeegyada kale ee aad isticmaashay inaad ku aragto khadka taliska. Natiijo ahaan, isticmaal maamulayaasha xirmada sida pip и apt ma shaqayn doono:

FROM gcr.io/distroless/python3
RUN  pip3 install numpy

Dockerfile adoo isticmaalaya Python 3 sawir aan kala go 'lahayn

Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM gcr.io/distroless/python3
 ---> 556d570d5c53
Step 2/2 : RUN  pip3 install numpy
 ---> Running in dbfe5623f125
/bin/sh: 1: pip3: not found

Pip kuma jiro sawirka

Caadiyan dhibaatadan waxaa lagu xalliyaa dhismo heerar badan leh:

FROM python:3 as builder
RUN  pip3 install numpy

FROM gcr.io/distroless/python3
COPY --from=builder /usr/local/lib/python3.7/site-packages /usr/local/lib/python3.5/

Isku imaatinka marxalado badan

Natiijadu waa sawirka cabbirkiisu yahay 130MB. Ma xuma! Marka la barbardhigo: sawirka Python ee caadiga ah ayaa miisaankiisu yahay 929MB, iyo kan "dhuuban"3,7-slim) - 179MB, sawirka alpine (3,7-alpine) waa 98,6MB, halka sawirka aan sal lahayn ee loo adeegsaday tusaalaha uu yahay 50,9MB.

Waa cadaalad in la tilmaamo in tusaalihii hore aanu koobiyaynayno hage dhan /usr/local/lib/python3.7/site-packages, kuwaas oo laga yaabo inay ku jiraan ku-tiirsanaan aannaan u baahnayn. Inkasta oo ay caddahay in farqiga cabbirka ee dhammaan sawirada saldhigga Python ee jira ay kala duwan yihiin.

Waqtiga qorista, Google distroless ma taageerto sawirro badan: Java iyo Python wali waxay ku jiraan marxaladda tijaabada, Python kaliya waxay u jirtaa 2,7 iyo 3,5.

Sawirro yaryar

U laabo rabitaankayga ku saabsan abuurista sawirro yaryar.

Guud ahaan, waxaan rabay in aan arko sida sawirada aan xumaanta lahayn loo dhisay. Mashruucii aan damiir lahayn wuxuu isticmaalaa qalabka wax lagu dhiso ee Google bazel. Si kastaba ha noqotee, rakibidda Bazel iyo qorista sawiradaada waxay qaadatay shaqo badan (iyo si daacad ah, dib-u-cusboonaysiinta giraangiraha waa madadaalo iyo waxbarasho). Waxaan doonayay inaan fududeeyo abuurista sawirro yaryar: ficilka abuurista sawirku waa inuu ahaadaa mid aad u fudud, banal. Si aanay u jirin faylal habayn ah adiga, kaliya hal xariiq oo ku jira console-ka: просто собрать образ для <приложение>.

Markaa, haddii aad rabto inaad abuurto sawirro adiga kuu gaar ah, markaa ogow: waxaa jira sawir docker gaar ah, scratch. Xoqashadu waa muuqaal "madhan", ma jiraan wax faylal ah oo ku jira, in kasta oo uu miisaankiisu yahay default - wow! - 77 bytes.

FROM scratch

Sawir xoq

Fikradda sawirka xoqan ayaa ah inaad koobi karto wixii ku tiirsanaanta mashiinka martida loo yahay oo aad u isticmaasho gudaha Dockerfile (tani waxay la mid tahay koobiyeynta iyaga si apt oo ka soo rakib xoq), ama ka dib marka sawirka Docker la rumeeyo. Tani waxay kuu ogolaaneysaa inaad si buuxda u xakameyso waxa ku jira weelka Docker, oo markaa si buuxda u xakameyso cabbirka sawirka.

Hadda waxaan u baahanahay inaan si uun u ururino waxyaalahan ku tiirsanaanta. Qalabka jira sida apt kuu ogolaanaya inaad soo dejiso baakadaha, laakiin waxay ku xidhan yihiin mishiinka hadda jira, ka dib oo dhan, ma taageeraan Windows ama MacOS.

Markaa waxaan u dejiyey inaan dhiso qalab ii gaar ah oo si toos ah u dhisi doona sawirka aasaasiga ah ee cabbirka ugu yar ee suurtogalka ah iyo sidoo kale socodsiiya codsi kasta. Waxaan adeegsaday baakadaha Ubuntu/Debian, waxaan sameeyay xulasho (baakadaha si toos ah uga soo qaadanaya kaydadka) oo waxaan si isdaba joog ah u helay ku tiirsanaanta. Barnaamijku waxa ay ahayd in uu si toos ah u soo dejiyo nooca ugu dambeeyay ee xidhmada, isaga oo yaraynaya khataraha ammaanka intii suurtogal ah.

Waxaan u magacaabay qalabka fetchy, sababtoo ah wuxuu... helaa oo keena... waxa loo baahan yahay [ka Ingiriis "Keen", "Keen" - qiyaastii. haad]. Qalabku wuxuu ka shaqeeyaa khadka taliska, laakiin isla markaa wuxuu bixiyaa API.

Si aad isugu ururiso sawir adigoo isticmaalaya fetchy (aan soo qaadno sawirka Python markan), kaliya waxaad u baahan tahay inaad isticmaasho CLI sida tan: fetchy dockerize python. Waxaa laga yaabaa in lagu weydiiyo nidaamka qalliinka ee bartilmaameedka ah iyo nambarka magaca sababtoo ah fetchy Hadda waxay isticmaashaa baakadaha kaliya ee ku saleysan Debian iyo Ubuntu.

Hadda waxaad dooran kartaa ku-tiirsanaanta aan loo baahnayn gabi ahaanba (marka la eego macnaha guud) oo ka saar. Tusaale ahaan, Python waxay kuxirantahay perl, in kasta oo ay si fiican u shaqeyso iyada oo aan Perl la rakibin.

Результаты

Sawirka Python ayaa la sameeyay iyadoo la adeegsanayo amarka fetchy dockerize python3.5 culeyskiisu waa 35MB oo kaliya (waxaan aad u hubaa in mustaqbalka xitaa la fududayn karo). Waxa noo soo baxday in aanu ku guulaysanay in aanu 15 WW oo kale ka xiirno sawirkii xumaaday.

Waxaad arki kartaa dhammaan sawirada la ururiyay ilaa hadda halkan.

Mashruuca - halkan.

Haddii aad ka maqan tahay sifooyin, kaliya samee codsi - Waan ku farxi doonaa inaan caawiyo :) Xitaa in ka badan, waxaan hadda ka shaqeynayaa isku dhafka maamulayaasha baakadaha kale ee fetchy, si aysan jirin baahi loo qabo dhismo heerar badan ah.

Source: www.habr.com

Add a comment