[tohutoro mo nga korero pakiwaitara a nga tamariki o Amerika "The Little Engine That Can" - approx. ara]*
Me pehea te hanga aunoa i nga whakaahua Docker iti mo o hiahia
Te Ahumahi rerekee
I roto i nga marama e rua kua pahure ake nei, kua maataki ahau ki te iti o te ahua o te Docker, kei te haere tonu te tono?
Kei te mohio ahau, he rereke te whakaaro.
I mua i taku urunga ki nga korero me nga tikanga hangarau, ka hiahia ahau ki te whakamarama he aha tenei raruraru i tino whakararuraru ai ahau, me pehea hoki e pa ana ki a koe.
He aha te mea nui
Ma te whakaheke i nga ihirangi o te ahua Docker, ka whakaitihia e matou te rarangi o nga whakaraeraetanga. Hei taapiri, he maamaa ake nga whakaahua, na te mea kei roto anake nga mea e hiahiatia ana hei whakahaere tono.
He iti ake te painga - he tere ake te tango i nga whakaahua, engari, ki taku whakaaro, ehara tenei i te mea nui.
Kia mahara: Mena kei te awangawanga koe mo te rahi, he iti te ahua o te Alpine ka pai ki a koe.
Whakaahua korekore
pip
и apt
e kore e mahi:
FROM gcr.io/distroless/python3
RUN pip3 install numpy
Dockerfile ma te whakamahi i te whakaahua korekore a Python 3
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
Kaore a Pip i te ahua
I te nuinga o te wa ka whakatauhia tenei raru ma te hanga maha-waahanga:
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/
Huihuinga maha-waahanga
Ko te hua ko te ahua o te 130MB te rahi. Ehara i te kino rawa! Hei whakataurite: ko te 929MB te taumaha o te ahua Python taunoa, me te mea "he kikokore" (3,7-slim
) - 179MB, te ahua o te maunga (3,7-alpine
) Ko te 98,6MB, ko te ahua koretake i whakamahia i roto i te tauira ko te 50,9MB.
He mea tika ki te tohu i roto i te tauira o mua kei te kapehia e matou he whaiaronga katoa /usr/local/lib/python3.7/site-packages
, kei roto pea nga whakawhirinakitanga kaore e hiahiatia ana e matou. Ahakoa e marama ana he rereke te rereketanga o nga whakaahua turanga Python katoa.
I te wa e tuhi ana, kaore a Google distroless e tautoko i te maha o nga whakaahua: Ko Java me Python kei te waahi whakamatautau, a ko Python anake mo te 2,7 me te 3,5.
Ko nga whakaahua iti
Hoki atu ki taku hiahia ki te hanga whakaahua iti.
I te nuinga o te waa, i hiahia ahau ki te kite me pehea te hanga whakaahua korekore. Ko te kaupapa distroless e whakamahi ana i te taputapu hanga a Google bazel
. Heoi, he nui te mahi ki te whakauru i a Bazel me te tuhi i o whakaahua (me te pono, he ngahau me te ako te hanga hou i te wira). I pirangi ahau ki te whakangawari i te hanga whakaahua iti ake: me tino ngawari te mahi hanga whakaahua, karekau. Kia kore he konae whirihoranga mo koe, kotahi noa te raina i te papatohu: просто собрать образ для <приложение>
.
Na, ki te hiahia koe ki te hanga i a koe ake whakaahua, katahi koe ka mohio: tera ano te ahua docker ahurei, scratch
. Ko te Scratch he ahua "kore", karekau he konae kei roto, ahakoa te taumaha ma te taunoa - aue! - 77 paita.
FROM scratch
Tirohanga pikitia
Ko te whakaaro o te ahua rakuraku ka taea e koe te kape i nga whakawhirinakitanga mai i te miihini manaaki ki roto ka whakamahia ki roto i te Dockerfile (he rite tenei ki te kape ki apt
me te whakauru mai i te wahanga), i muri mai ranei i te wa e hangaia ai te ahua Docker. Ma tenei ka taea e koe te whakahaere katoa i nga ihirangi o te ipu Docker, na reira ka tino whakahaere i te rahi o te ahua.
Inaianei me kohikohi tatou i enei whakawhirinakitanga. Nga taputapu o naianei penei apt
ka taea e koe te tango i nga kohinga, engari kua herea ki te miihini o naianei, a, i muri i nga mea katoa, kaore e tautoko i a Windows, MacOS ranei.
Na ka anga ahau ki te hanga i taku ake taputapu ka hanga aunoa i tetahi ahua ahua o te iti rawa te rahi me te whakahaere i tetahi tono. I whakamahia e au nga kohinga Ubuntu/Debian, i kowhiria (te tiki mai i nga kete mai i nga putunga) ka kitea e au o raatau whakawhirinakitanga. Ko te tikanga ka tango aunoa te kaupapa i te putanga pumau hou o te kete, me te whakaiti i nga tupono haumarutanga ka taea.
I tapaina e ahau te taputapu fetchy
, no te mea ka... ka kitea e ia, ka kawea mai... nga mea e hiahiatia ana [mai i te reo Ingarihi “Tikina”, “mauria mai” - āhua. ara]. Ka mahi te taputapu ma te atanga raina whakahau, engari i te wa ano ka tukuna he API.
Hei whakahiato whakaahua ma te whakamahi fetchy
(Me tango whakaahua Python i tenei wa), me whakamahi noa koe i te CLI penei: fetchy dockerize python
. Ka patai pea koe mo te punaha whakahaere me te ingoa waehere na te mea fetchy
I tenei wa ka whakamahi noa nga kohinga i runga i a Debian me Ubuntu.
Inaianei ka taea e koe te kowhiri ko wai nga whakawhirinakitanga kaore e hiahiatia (i roto i ta maatau horopaki) ka whakakorehia. Hei tauira, ka whakawhirinaki a Python ki te perl, ahakoa he pai te mahi me te kore e whakauruhia a Perl.
Результаты
Ko te ahua Python i hangaia ma te whakamahi i te whakahau fetchy dockerize python3.5
he 35MB anake te taumaha (Kei te tino mohio ahau kei nga ra kei te heke mai ka kaha ake te ngawari). Te ahua nei i taea e matou te heu i tetahi atu 15 WW mai i te ahua korekore.
Ka taea e koe te kite i nga whakaahua katoa kua kohia i tenei wa
Kaupapa -
Mena kei te ngaro koe i nga ahuatanga, hanga noa he tono - Ka koa ahau ki te awhina :) Ko te mea ano, kei te mahi ahau i tenei wa ki te whakauru i etahi atu kaiwhakahaere mokihi ki te tiki, kia kore ai he hiahia mo te hanga maha-waahanga.
Source: will.com