Litšoantšo tse nyane tsa Docker tse neng li itšepa *

[ho buuoa ka pale ea tšōmo ea bana ba Amerika "The Little Engine That could" - hoo e ka bang. lane]*

Litšoantšo tse nyane tsa Docker tse neng li itšepa *

Mokhoa oa ho iketsetsa litšoantšo tse nyane tsa Docker bakeng sa litlhoko tsa hau

Khatello e sa Tloaelehang

Likhoeling tse 'maloa tse fetileng, ke ntse ke amehile haholo ka hore na setšoantšo sa Docker se ka ba senyane hakae mme ke ntse ke e-na le kopo e sebetsang?

Kea utloisisa, mohopolo oo oa makatsa.

Pele ke kena lintlheng le litabeng tsa tekheniki, ke rata ho hlalosa hore na ke hobane'ng ha bothata bona bo ile ba ntšoenya hakana, le hore na bo u ama joang.

Hobaneng boholo bo le bohlokoa

Ka ho fokotsa litaba tsa setšoantšo sa Docker, ka hona re fokotsa lenane la bofokoli. Ho feta moo, re etsa hore litšoantšo li hloeke, hobane li na le feela se hlokahalang ho tsamaisa lits'ebetso.

Ho na le molemo o mong hape o monyane - litšoantšo li jarolloa kapele, empa, ka maikutlo a ka, sena ha se bohlokoa hakaalo.

Ka kopo hlokomela: Haeba u amehile ka boholo, Alpine e shebahala e nyane mme e kanna ea u lekana.

Litšoantšo tse se nang letho

Project Distroless e fana ka khetho ea litšoantšo tsa "distroless", ha li na batsamaisi ba liphutheloana, likhetla le lisebelisoa tse ling tseo u tloaetseng ho li bona moleng oa taelo. Ka lebaka leo, sebelisa batsamaisi ba liphutheloana joaloka pip и apt e ke ke ea sebetsa:

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

Dockerfile o sebelisa setšoantšo sa Python 3 se sa sebetseng

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 ha e eo setšoantšong

Hangata bothata bona bo rarolloa ka mekhahlelo e mengata:

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/

Kopano ea mekhahlelo e mengata

Sephetho ke setšoantšo sa boholo ba 130MB. Eseng mpe haholo! Ha ho bapisoa: setšoantšo sa kamehla sa Python se boima ba 929MB, 'me se "sesane" (3,7-slim) - 179MB, setšoantšo sa alpine (3,7-alpine) ke 98,6MB, ha setšoantšo sa "base distroless" se sebelisitsoeng mohlaleng ke 50,9MB.

Ho nepahetse ho supa hore mohlaleng o fetileng re ntse re kopitsa directory kaofela /usr/local/lib/python3.7/site-packages, e ka ’nang eaba e na le lintho tseo re sa li hlokeng. Le hoja ho hlakile hore phapang ea boholo ba litšoantšo tsohle tse teng tsa Python e fapana.

Nakong ea ho ngola, Google distroless ha e tšehetse litšoantšo tse ngata: Java le Python li ntse li le sethaleng sa liteko, 'me Python e teng feela bakeng sa 2,7 le 3,5.

Litšoantšo tse nyane

Khutlela ho tsielehong ea ka ea ho theha litšoantšo tse nyane.

Ka kakaretso, ke ne ke batla ho bona kamoo litšoantšo tse sa tsitsang li hahoang kateng. Morero o sa sebetseng o sebelisa sesebelisoa sa ho aha sa Google bazel. Leha ho le joalo, ho kenya Bazel le ho ngola litšoantšo tsa hau ho ile ha nka mosebetsi o mongata ('me ho bua 'nete, ho tsosolosa lebili ho monate ebile ho ruta). Ke ne ke batla ho nolofatsa popo ea litšoantšo tse nyane: ketso ea ho theha setšoantšo e lokela ho ba bonolo haholo, banal. E le hore ha ho na lifaele tsa tlhophiso bakeng sa hau, mola o le mong feela ho console: просто собрать образ для <приложение>.

Kahoo, haeba u batla ho iketsetsa litšoantšo, joale tseba: ho na le setšoantšo se ikhethileng sa docker, scratch. Scratch ke setšoantšo se "se nang letho", ha ho na lifaele ho eona, leha e le boima ka ho sa feleng - wow! - li-byte tse 77.

FROM scratch

Ngola setšoantšo

Mohopolo oa setšoantšo sa "scratch" ke hore o ka kopitsa litšepiso life kapa life tse tsoang mochining o amohelang ho eona ebe o li sebelisa ka har'a Dockerfile (sena se tšoana le ho li kopitsa apt le ho kenya ho tloha qalong), kapa hamorao ha setšoantšo sa Docker se etsoa. Sena se o lumella ho laola ka botlalo litaba tsa sets'oants'o sa Docker, mme ka hona o laole boholo ba setšoantšo ka botlalo.

Hona joale re hloka ho bokella litšepiso tsena ka tsela e itseng. Lisebelisoa tse teng joalo ka apt li u lumella ho khoasolla liphutheloana, empa li tlameletsoe mochining oa hajoale mme, ka mor'a tsohle, ha li tšehetse Windows kapa MacOS.

Kahoo ke ile ka ikemisetsa ho iketsetsa sesebelisoa sa ka se neng se tla iketsetsa setšoantšo sa boholo bo bonyenyane ka ho fetisisa 'me se sebelise kopo leha e le efe. Ke sebelisitse liphutheloana tsa Ubuntu / Debian, ka khetha (ho fumana liphutheloana ka kotloloho ho tsoa litsing tsa polokelo) mme ke fumane hape litšepiso tsa bona. Lenaneo le ne le lokela ho jarolla mofuta oa morao-rao o tsitsitseng oa sephutheloana, ho fokotsa likotsi tsa ts'ireletso ka hohle kamoo ho ka khonehang.

Ke ile ka reha sesebelisoa seo fetchy, hobane o... fumana le ho tlisa... se hlokahalang [ho tsoa ho Senyesemane “lata”, “tlisa” - hoo e ka bang. lane]. Sesebelisoa se sebetsa ka sebopeho sa mola oa taelo, empa ka nako e ts'oanang se fana ka API.

Ho kopanya setshoantsho ka ho sebedisa fetchy (ha re nke setšoantšo sa Python lekhetlong lena), o hloka feela ho sebelisa CLI tjena: fetchy dockerize python. U ka 'na ua botsoa bakeng sa mokhoa o sebetsang oa ho sebetsa le codename hobane fetchy hajoale e sebelisa feela liphutheloana tse thehiloeng ho Debian le Ubuntu.

Joale o ka khetha hore na ke litšepeho life tse sa hlokeng ho hang (maemong a rona) mme o li kenye. Mohlala, Python e ipapisitse le perl, leha e sebetsa hantle ntle le Perl e kentsoe.

Liphetho

Setšoantšo sa Python se entsoe ka taelo fetchy dockerize python3.5 boima ba 35MB feela (ke na le bonnete ba hore nakong e tlang e ka etsoa le ho feta). Ho ile ha fumaneha hore re khonne ho kuta 15 WW e 'ngoe ho tloha setšoantšong se se nang letho.

U ka bona litšoantšo tsohle tse bokelitsoeng ho fihlela joale mona.

Morero - mona.

Haeba u haelloa ke likarolo, etsa feela kopo - ke tla thabela ho thusa :) Ho feta moo, hona joale ke ntse ke sebetsa ho kopanya batsamaisi ba liphutheloana tse ling ho fetchy, e le hore ho se ke ha e-ba le tlhokahalo ea ho haha ​​​​mehato e mengata.

Source: www.habr.com

Eketsa ka tlhaloso