Ko nga whakaahua Docker iti i whakapono ki a ratou ano*

[he tohutoro ki te pūrākau tamariki o Amerika "The Little Engine That Could" — tuhipoka whakamāori]*

Ko nga whakaahua Docker iti i whakapono ki a ratou ano*

Me pēhea te hanga aunoa i ngā whakaahua Docker iti mō ō hiahia

He āwangawanga rerekē

Mō ngā marama kua taha ake nei, kua aro nui ahau ki tēnei whakaaro: kia pēhea te iti o te ahua o te Docker, kia taea ai tonu te whakamahi i te taupānga?

E mārama ana ahau, he rerekē te whakaaro.

I mua i taku urunga atu ki ngā taipitopito me ngā mahi hangarau, me whakamārama atu he aha ahau i tino hiahia ai ki tēnei take, me tōna pānga ki a koe.

He aha te hiranga o te rahi

Mā te whakaiti i ngā ihirangi o tētahi whakaahua Docker, ka whakaitihia e mātou te rārangi o ngā ngoikoretanga. Ka whakapai ake hoki mātou i ngā whakaahua, nā te mea ko ngā mea anake e hiahiatia ana hei whakahaere i ngā tono kei roto.

Tētahi atu painga iti - he tere ake te tango i ngā whakaahua, engari ki taku whakaaro kāore tēnei i te tino hiranga.

Kia mōhio mai: Ki te mea he āwangawanga koe mō te rahi, he iti ngā whakaahua Alpine, ā, tera pea ka tau ki a koe.

Ngā whakaahua kore-whakamarara

Kaupapa Kore-Whakawhiti e tuku ana i tētahi kōwhiringa o ngā whakaahua "kore-whakawhiti" taketake; kāore i roto i a rātou ngā kaiwhakahaere mōkihi, ngā anga, me ētahi atu taputapu kua taunga koe ki te kite i roto i te rārangi whakahau. Nō reira, mā te whakamahi i ngā kaiwhakahaere mōkihi pēnei i pip и apt kāore e mahi:

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

Kōnae Docker e whakamahi ana i tētahi whakaahua Python 3 distroless

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

Kāore a Pip i roto i te ahua

Ko te tikanga, ka whakatauhia tēnei raruraru mā te huihuinga maha-wāhanga:

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-wāhanga

Ko te rahi o te ahua ka puta ko te 130MB. Kāore i te kino rawa! Hei whakataurite, ko te taumaha o te ahua Python taunoa he 929MB, ā, ko te mea "kua whakaitihia" (3,7-slim) - 179MB, ahua maunga (3,7-alpine) — 98,6 MB, ko te ahua distroless turanga i whakamahia i roto i te tauira he 50,9 MB.

Ka taea te kī tika i roto i te tauira o mua kei te tāruahia e tātou tētahi whaiaronga katoa /usr/local/lib/python3.7/site-packages, kei roto pea ngā whakawhirinakitanga kāore e hiahiatia ana e tātou. Heoi, e mārama ana ka rerekē te rerekētanga rahi i waenga i ngā whakaahua turanga Python katoa.

I te wā e tuhi ana tēnei, kāore a Google distroless e tautoko i te maha o ngā whakaahua: kei te whakamātautau tonu a Java me Python, ā, ko Python anake kei te wātea mō ngā putanga 2,7 me 3,5.

Ngā whakaahua iti

Kia hoki tātou ki taku tino hiahia ki te hanga whakaahua iti.

I hiahia ahau ki te kite i te hanganga o ngā whakaahua kore-whakawhitiwhiti. Ka whakamahia e te kaupapa kore-whakawhitiwhiti te taputapu hanga a Google. bazelHeoi, i roa te wā e hiahiatia ana te mahi ki te tāuta i a Bazel me te hanga i aku ake whakaahua (ā, ki te pono, he mea ngahau, he mea ako hoki te hanga anō i te wira). I hiahia ahau ki te whakangawari i te hanga i ngā whakaahua iti: me tino māmā te mahi hanga whakaahua, noa ihoNō reira, kāore he kōnae whirihoranga māu, kotahi noa te rārangi i roto i te papatohu: просто собрать образ для <приложение>.

Nō reira, ki te hiahia koe ki te waihanga i ō ake whakaahua, kia mōhio koe he ahua docker ahurei tēnei, scratchHe whakaahua "koretake" a Scratch; kāore he kōnae i roto, ahakoa tōna taumaha—āe!—77 paita te taunoa.

FROM scratch

Whakaahua waru

Ko te whakaaro kei muri i te ahua rakuraku, ka taea e koe te tārua i ngā whakawhirinakitanga katoa mai i te mīhini manaaki ki roto, ā, ka taea hoki te whakamahi i roto i te kōnae Docker (he rite ki te tārua ki apt (me te tāuta mai i te tīmatanga), i muri mai rānei, ina oti te whakatinana i te ahua o Docker. Mā tēnei ka taea te whakahaere katoa i ngā ihirangi o te ipu Docker, ā, ka taea hoki te whakahaere katoa i te rahi o te ahua.

Inaianei me kohikohi tātou i ēnei whakawhirinakitanga. Ko ngā taputapu o nāianei pēnei i te apt позволяют скачивать пакеты, но они привязаны к текущей машине и, в конце концов, не поддерживают Windows или MacOS.

И вот я взялся собрать собственный инструмент, который автоматически собирал бы базовый образ наименьшего возможного размера и чтобы тот еще запускал любое приложение. Использовал я пакеты Ubuntu/Debian, делал выборку (получая пакеты прямиком из репозиториев) и рекурсивно находил их зависимости. Программа должна была автоматически скачивать новейшую устойчивую версию пакета, максимально снижая риски для безопасности.

I tapaina e au te taputapu fetchy, nā te mea… ka kitea e ia, ka kawea mai… ngā mea e hiahiatia ana [mai i te reo Pākehā "tiki", "kawe mai" — whakamāoritanga. tuhipokaKa mahi te taputapu mā te atanga raina whakahau, engari kei a ia anō hoki he API.

Hei hanga i tētahi whakaahua mā te whakamahi i fetchy (me tango he whakaahua Python i tēnei wā), me whakamahi noa koe i te CLI penei: fetchy dockerize pythonTērā pea ka pātaihia koe mō te pūnaha whakahaere me te ingoa waehere e hiahiatia ana nā te mea fetchy пока использует только пакеты на базе Debian и Ubuntu.

Inaianei ka taea e koe te whiriwhiri ko ēhea ngā whakawhirinakitanga kāore e tino hiahiatia (i roto i tā tātou horopaki) me te tango atu i aua whakawhirinakitanga. Hei tauira, ka whakawhirinaki a Python ki a Perl, ahakoa ka mahi pai tonu me te kore e tāutahia a Perl.

Результаты

He whakaahua Python i hangaia mā te whakamahi i te whakahau fetchy dockerize python3.5 E 35MB anake te taumaha (e tino mōhio ana ahau ka taea te whakamāmā ake i te heke mai). Nō reira, i taea e mātou te tango i tētahi atu 15MB mai i te ahua kore-whakawhiti.

Ka taea e koe te tiro i ngā whakaahua katoa kua kohia tae noa mai ki tēnei wā. konei.

Kaupapa - konei.

Ki te ngaro ngā āhuatanga, waihangahia he tono—ka koa ahau ki te āwhina :) Heoi anō, kei te mahi ahau i tēnei wā ki te whakauru i ētahi atu kaiwhakahaere mōkihi ki roto i te fetchy, kia kore ai e hiahiatia he hanganga maha-wāhanga.

Source: will.com

Hokona te manaaki pono mo nga waahi me te tiaki DDoS, nga kaiwhakarato VPS VDS 🔥 Hokona he manaaki paetukutuku pono me te tiakitanga DDoS, ngā tūmau VPS VDS | ProHoster