Cov duab me me Docker uas ntseeg lawv tus kheej *

[Kev xa mus rau Asmeskas cov menyuam yaus zaj dab neeg "Tus Me Lub Cav Ua Tau" - kwv yees. txoj kev]*

Cov duab me me Docker uas ntseeg lawv tus kheej *

Yuav ua li cas thiaj li tsim cov duab me me Docker rau koj cov kev xav tau

Kev Tsis Txaus Siab

Ob peb lub hlis dhau los, kuv tau xav txog qhov me me ntawm Docker duab tuaj yeem ua tau thiab tseem muaj daim ntawv thov ua haujlwm?

Kuv nkag siab, lub tswv yim yog coj txawv txawv.

Ua ntej kuv nkag mus rau hauv cov ntsiab lus thiab technicalities, kuv xav piav qhia tias vim li cas qhov teeb meem no ua rau kuv nyuaj siab heev, thiab nws txhawj txog koj li cas.

Vim li cas qhov loj me tseem ceeb

Los ntawm kev txo cov ntsiab lus ntawm Docker duab, peb thiaj li txo cov npe ntawm qhov tsis zoo. Tsis tas li ntawd, peb ua kom cov duab huv dua, vim tias lawv tsuas muaj qhov xav tau los khiav cov ntawv thov.

Muaj ib qho txiaj ntsig me me ntxiv - cov duab rub tawm sai dua me ntsis, tab sis, hauv kuv lub tswv yim, qhov no tsis tseem ceeb.

Thov nco ntsoov: Yog tias koj txhawj xeeb txog qhov loj me, Alpine zoo li lawv tus kheej me me thiab yuav haum rau koj.

Cov duab tsis zoo

Qhov project Distroless muaj kev xaiv ntawm cov duab "distroless" yooj yim, lawv tsis muaj cov tswj pob, plhaub thiab lwm yam khoom siv uas koj tau siv los pom ntawm kab hais kom ua. Yog li ntawd, siv cov neeg saib xyuas pob nyiam pip и apt yuav tsis ua haujlwm:

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

Dockerfile siv Python 3 distroless duab

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 tsis nyob hauv daim duab

Feem ntau qhov teeb meem no daws tau los ntawm ntau theem tsim:

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/

Multi-theem sib dhos

Qhov tshwm sim yog ib daim duab ntawm 130MB loj. Tsis phem! Rau kev sib piv: lub neej ntawd duab Python hnyav 929MB, thiab "thinner" ib qho (3,7-slim) - 179MB, duab alpine (3,7-alpine) yog 98,6MB, thaum lub hauv paus distroless duab siv hauv qhov piv txwv yog 50,9MB.

Nws yog qhov ncaj ncees los taw qhia tias hauv qhov piv txwv yav dhau los peb tau luam tag nrho cov npe /usr/local/lib/python3.7/site-packages, uas tej zaum yuav muaj kev vam khom uas peb tsis xav tau. Txawm hais tias nws yog qhov tseeb tias qhov sib txawv me me ntawm tag nrho cov duab Python uas twb muaj lawm sib txawv.

Thaum lub sijhawm sau ntawv, Google distroless tsis txhawb ntau cov duab: Java thiab Python tseem nyob rau theem kev sim, thiab Python tsuas muaj nyob rau 2,7 thiab 3,5.

Cov duab me me

Rov qab mus rau kuv txoj kev xav nrog kev tsim cov duab me me.

Feem ntau, kuv xav pom yuav ua li cas cov duab distroless tsim. Qhov project distroless siv Google tsim cov cuab yeej bazel. Txawm li cas los xij, txhim kho Bazel thiab sau koj tus kheej cov duab tau ua haujlwm ntau (thiab ua kom ncaj ncees, rov tsim lub log yog kev lom zem thiab kev kawm). Kuv xav ua kom yooj yim rau kev tsim cov duab me me: kev tsim cov duab yuav tsum yooj yim heev, banal. Yog li ntawd tsis muaj cov ntaub ntawv teeb tsa rau koj, tsuas yog ib kab hauv console: просто собрать образ для <приложение>.

Yog li, yog tias koj xav tsim koj tus kheej cov duab, ces paub: muaj xws li cov duab docker tshwj xeeb, scratch. Scratch yog ib daim duab "tsis muaj", tsis muaj cov ntaub ntawv hauv nws, txawm tias nws hnyav los ntawm lub neej ntawd - wow! - 77 bytes.

FROM scratch

Kos duab

Lub tswv yim ntawm daim duab kos yog tias koj tuaj yeem luam tawm txhua qhov kev cia siab los ntawm lub tshuab tswv tsev rau hauv nws thiab siv lawv hauv Dockerfile (qhov no zoo li luam lawv mus. apt thiab nruab los ntawm kos), lossis tom qab ntawd thaum Docker duab tau tsim. Qhov no tso cai rau koj los tswj tag nrho cov ntsiab lus ntawm Docker thawv, thiab yog li tswj tag nrho qhov loj ntawm daim duab.

Tam sim no peb yuav tsum tau sau cov kev vam meej no. Cov cuab yeej muaj xws li apt tso cai rau koj rub tawm cov pob khoom, tab sis lawv raug khi rau lub tshuab tam sim no thiab, tom qab tag nrho, tsis txhawb Windows lossis MacOS.

Yog li kuv tau teeb tsa los tsim kuv tus kheej cov cuab yeej uas yuav cia li tsim lub hauv paus duab ntawm qhov tsawg tshaj plaws ua tau thiab tseem khiav txhua daim ntawv thov. Kuv siv Ubuntu / Debian tej pob khoom, ua ib qho kev xaiv (tau txais pob khoom ncaj qha los ntawm qhov chaw cia khoom) thiab rov pom lawv qhov kev vam khom. Qhov kev zov me nyuam yuav tsum tau rub tawm qhov tseeb ruaj khov version ntawm pob, txo qis kev pheej hmoo kev nyab xeeb ntau li ntau tau.

Kuv npe lub cuab tam fetchy, vim nws... nrhiav thiab nqa... yam uas xav tau [los ntawm lus Askiv "nqa", "nqa" - approx. txoj kev]. Cov cuab yeej ua haujlwm los ntawm kab hais kom ua interface, tab sis tib lub sijhawm muaj API.

Sib sau ua ke ib daim duab siv fetchy (cia peb nqa daim duab Python lub sijhawm no), koj tsuas yog yuav tsum siv CLI zoo li no: fetchy dockerize python. Tej zaum koj yuav raug nug rau lub hom phiaj operating system thiab codename vim fetchy tam sim no tsuas yog siv pob khoom raws li Debian thiab Ubuntu.

Tam sim no koj tuaj yeem xaiv qhov kev vam khom tsis xav tau ntawm txhua qhov (hauv peb cov ntsiab lus) thiab tsis suav nrog lawv. Piv txwv li, Python nyob ntawm perl, txawm hais tias nws ua haujlwm zoo yam tsis muaj Perl ntsia.

Результаты

Python duab tsim siv cov lus txib fetchy dockerize python3.5 hnyav tsuas yog 35MB (Kuv paub tseeb tias yav tom ntej nws tuaj yeem ua kom sib dua). Nws hloov tawm tias peb tau tswj kom chais tawm lwm 15 WW los ntawm cov duab distroless.

Koj tuaj yeem pom tag nrho cov duab sau los txog tam sim no no.

Qhov project - S, SѓS,.

Yog tias koj ploj lawm nta, tsuas yog tsim ib qho kev thov - Kuv yuav zoo siab los pab :) Txawm ntau, tam sim no kuv tab tom ua haujlwm ntawm kev sib koom ua ke nrog lwm tus neeg saib xyuas pob rau hauv fetchy, yog li tsis tas yuav muaj ntau theem tsim.

Tau qhov twg los: www.hab.com

Ntxiv ib saib