
Mokhoa oa ho iketsetsa litšoantšo tse nyane tsa Docker bakeng sa litlhoko tsa hau
Boikutlo bo sa tloaelehang
Likhoeling tse 'maloa tse fetileng, ke ntse ke amehile ka mohopolo ona: setšoantšo sa Docker se ka ba nyane hakae mme se ntse se etsa hore kopo e sebetse?
Kea utloisisa, mohopolo oo oa makatsa.
Pele ke kena lintlheng le lintlha tsa tekheniki, ke kopa ho hlalosa hore na ke hobane'ng ha taba ena e nkhahla hakana le hore na e u ama joang.
Hobaneng boholo bo le bohlokoa
Ka ho fokotsa litaba tsa setšoantšo sa Docker, re fokotsa lenane la bofokoli. Re boetse re hloekisa litšoantšo, kaha li na le feela se hlokahalang ho tsamaisa lits'ebetso.
Ho na le molemo o mong hape o monyane - litšoantšo li khoasolla hanyane ka hanyane, empa ka maikutlo a ka sena ha se bohlokoa hakaalo.
Ka kopo hlokomela: Haeba u amehile ka boholo, litšoantšo tsa Alpine ka botsona li nyane 'me mohlomong li tla u lekana.
Litšoantšo tse se nang letho
e fana ka khetho ea litšoantšo tsa motheo tsa "distroless"; ha li na balaoli ba liphutheloana, likhetla, kapa lisebelisoa tse ling tseo u tloaetseng ho li bona moleng oa taelo. Ka lebaka leo, ho sebelisa batsamaisi ba liphutheloana ho rata pip и apt e ke ke ea sebetsa:
FROM gcr.io/distroless/python3
RUN pip3 install numpyDockerfile 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 foundPip ha e eo setšoantšong
Ka tloaelo, bothata bona bo rarolloa ka kopano ea 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
Setšoantšo se hlahisoang ke 130MB ka boholo. Eseng mpe haholo! Ha ho bapisoa, setšoantšo sa kamehla sa Python se boima ba 929MB, 'me se "slimmed" se le seng (3,7-slim) - 179MB, setšoantšo sa alpine (3,7-alpine) - 98,6 MB, ha setšoantšo sa motheo sa distroless se sebelisitsoeng mohlala ke 50,9 MB.
Ho ka boleloa ka nepo hore mohlaleng o fetileng re ntse re kopitsa bukana eohle /usr/local/lib/python3.7/site-packages, e ka 'nang eaba e na le lintho tseo re sa li hlokeng. Leha ho le joalo, ho hlakile hore phapang ea boholo lipakeng tsa litšoantšo tsohle tse teng tsa Python e ea fetoha.
Nakong ea ho ngola, Google distroless ha e tšehetse litšoantšo tse ngata: Java le Python li ntse li lekoa, 'me Python e fumaneha feela bakeng sa 2,7 le 3,5.
Litšoantšo tse nyane
Ha re khutleleng maikutlong a ka a ho etsa litšoantšo tse nyane.
Ke ne ke hlile ke batla ho bona hore na litšoantšo tse se nang kotsi li hlophisitsoe joang. Morero o sa sebetseng o sebelisa sesebelisoa sa ho aha sa Google. bazelLeha ho le joalo, ho kenya Bazel le ho iketsetsa litšoantšo tsa ka ho ile ha nka boiteko bo itseng ('me ho bua 'nete ka ho feletseng, ho tsosolosa lebili ho monate ebile ho ruta). Ke ne ke batla ho nolofatsa ts'ebetso ea litšoantšo tse fokolitsoeng: ketso ea ho theha setšoantšo e lokela ho ba bonolo haholo, banalKahoo 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 hore ho na le setšoantšo se ikhethileng sa docker, scratchScratch ke setšoantšo se "se nang letho"; ha e na lifaele, le hoja e le boima ba 'mele—wow!—77 bytes ka tloaelo.
FROM scratchNgola setšoantšo
Mohopolo o ka morao ho setšoantšo sa sekoahelo 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 (ho tšoana le ho li kopitsa ho eona. apt 'me u kenye ho tloha qalong), kapa hamorao, hang ha setšoantšo sa Docker se se se entsoe. Sena se lumella taolo e felletseng holim'a likahare tsa sets'oants'o sa Docker, ka hona, taolo e felletseng holim'a boholo ba setšoantšo.
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, qetellong, ha li tšehetse Windows kapa MacOS.
Kahoo ke ile ka etsa qeto ea ho iketsetsa sesebelisoa sa ka se neng se tla iketsetsa setšoantšo sa motheo sa boholo bo fokolang ka ho fetisisa 'me se ntse se sebelisa kopo leha e le efe. Ke sebelisitse liphutheloana tsa Ubuntu / Debian, ka etsa khetho (ho fumana liphutheloana ka kotloloho ho tsoa polokelong ea polokelo), 'me ka iphetela ka fumana litšepiso tsa tsona. Lenaneo le ne le lokela ho jarolla mofuta oa morao-rao o tsitsitseng oa sephutheloana, ho fokotsa likotsi tsa ts'ireletso.
Ke ile ka reha seletsa seo fetchy, hobane o… o fumana le ho tlisa… se hlokahalang [ho tloha ho Senyesemane "fetch", "to bring" — trans. Hlokomela]. Sesebelisoa se sebetsa ka sebopeho sa mola oa taelo, empa hape se fana ka API.
Bakeng sa ho bokella setšoantšo ka ho sebelisa fetchy (ha re nke setšoantšo sa Python lekhetlong lena), o hloka feela ho sebelisa CLI tjena: fetchy dockerize pythonU ka 'na ua botsoa bakeng sa sepheo sa tsamaiso ea ho sebetsa le lebitso la khoutu hobane fetchy hajoale e sebelisa liphutheloana tse thehiloeng ho Debian le Ubuntu feela.
Joale o ka khetha hore na ke litšepeho life tse sa hlokahaleng ka botlalo (maemong a rona) ebe o li qhelela ka thoko. Mohlala, Python e ipapisitse le Perl, leha e sebetsa hantle ntle le Perl e kentsoeng.
Liphetho
Setšoantšo sa Python se entsoe ka taelo fetchy dockerize python3.5 E boima ba 35MB feela (ke na le bonnete ba hore e ka etsoa bobebe le ho feta nakong e tlang). Kahoo, re khonne ho kuta 15MB e 'ngoe ho tloha setšoantšong se se nang letho.
U ka sheba litšoantšo tsohle tse bokelitsoeng ho fihlela joale. .
Morero - .
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 hahoa ha mekhahlelo e mengata ho se ke ha hlokahala.
Source: www.habr.com
