[ntụaka na akụkọ ifo ụmụaka America "The Little Engine That Could" - ihe dị ka. uzo]*
Otu esi emepụta obere onyonyo Docker na-akpaghị aka maka mkpa gị
Mmasị na-adịghị ahụkebe
N'ime ọnwa ole na ole gara aga, a na-eche m ka otu onyonyo Docker si dị ntakịrị ma ka nwere ngwa ahụ?
Aghọtara m, echiche ahụ dị ịtụnanya.
Tupu m banye na nkọwa na teknụzụ, ọ ga-amasị m ịkọwa ihe kpatara nsogbu a na-ewute m nke ukwuu, yana otu o si metụta gị.
Gịnị mere size mkpa
Site na ibelata ọdịnaya nke onyonyo Docker, anyị si otú a belata ndepụta adịghị ike. Ọzọkwa, anyị na-eme ka ihe oyiyi dị ọcha, n'ihi na ha nwere naanị ihe achọrọ iji mee ngwa.
Enwere otu obere uru ọzọ - a na-ebudata ihe oyiyi ngwa ngwa, ma, n'echiche m, nke a adịghị mkpa.
Biko mara: Ọ bụrụ na ị na-eche banyere nha, Alpine anya onwe ha dị obere ma ọ ga-adabara gị.
Onyonyo na-enweghị atụ
pip
и apt
agaghị arụ ọrụ:
FROM gcr.io/distroless/python3
RUN pip3 install numpy
Dockerfile na-eji Python 3 foto enweghị isi
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 adịghị na foto a
Ọtụtụ mgbe, a na-edozi nsogbu a site na nrụpụta ọtụtụ ọkwa:
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/
Mgbakọ ọtụtụ ọkwa
Nsonaazụ bụ onyonyo nke 130MB n'ogo. Ọ bụghị oke njọ! Maka ntụnyere: oyiyi Python nke ndabara na-atụ 929MB, yana nke “dị gịrịgịrị” (3,7-slim
) - 179MB, foto alpine (3,7-alpine
) bụ 98,6MB, ebe isi ihe onyonyo na-enweghị isi ejiri mee ihe atụ bụ 50,9MB.
Ọ dị mma ịkọwapụta na n'ihe atụ gara aga, anyị na-edegharị akwụkwọ ndekọ aha dum /usr/local/lib/python3.7/site-packages
, nke nwere ike ịnwe dabere na anyị achọghị. Ọ bụ ezie na o doro anya na nha ọdịiche nke ihe oyiyi isi Python niile dị iche iche.
N'oge ederede, Google distroless anaghị akwado ọtụtụ onyonyo: Java na Python ka nọ na nnwale nnwale, Python dị naanị maka 2,7 na 3,5.
Obere onyonyo
Laghachi na mmasị m na imepụta obere onyonyo.
N'ozuzu, achọrọ m ịhụ ka e si arụ ihe oyiyi na-enweghị isi. Ihe oru ngo a na-emebi emebi na-eji ihe eji wuo ihe nke Google bazel
. Otú ọ dị, ịwụnye Bazel na ide ihe oyiyi nke gị nwere ọtụtụ ọrụ (na n'eziokwu, ịmegharị wiil ahụ bụ ihe na-atọ ụtọ na nkuzi). Achọrọ m ime ka okike nke obere onyonyo dị mfe: omume nke imepụta onyonyo kwesịrị ịdị mfe nke ukwuu, banal. Ka enweghị faịlụ nhazi maka gị, naanị otu ahịrị na njikwa: просто собрать образ для <приложение>
.
Yabụ, ọ bụrụ na ịchọrọ ịmepụta onyonyo nke gị, marakwa: enwere onyonyo docker pụrụ iche, scratch
. Scratch bụ onyonyo "efu", enweghị faịlụ dị na ya, n'agbanyeghị na ọ na-atụ ya na ndabara - wow! - 77 bytes.
FROM scratch
Ikpochapu onyonyo
Echiche nke onyonyo ọkọwa bụ na ị nwere ike idetuo ihe ọ bụla dabere na igwe nnabata n'ime ya ma jiri ya n'ime Dockerfile (nke a dị ka iṅomi ha apt
ma wụnye site na ọkọ), ma ọ bụ emechaa mgbe ihe oyiyi Docker pụtara. Nke a na-enye gị ohere ijikwa ihe dị n'ime akpa Docker kpamkpam, wee si otú a na-achịkwa nha oyiyi ahụ kpamkpam.
Ugbu a, anyị kwesịrị ịnakọta ndị a dabere. Ngwa dị dị ka apt
na-enye gị ohere ibudata ngwugwu, mana ha na-ejikọta na igwe dị ugbu a na, mgbe niile, anaghị akwado Windows ma ọ bụ MacOS.
N'ihi ya, m malitere ịrụ ọrụ nke m nke ga-eme ka ihe oyiyi dị ala na-arụ ọrụ nke kacha nta ma mee ngwa ọ bụla. Eji m ngwugwu Ubuntu/Debian mee nhọrọ (na-enweta ngwugwu ozugbo site na ebe nchekwa) wee chọpụta na ha dabere. Ekwesịrị ka mmemme ahụ budata ụdị ngwungwu ahụ kwụsiri ike na-akpaghị aka, na-ebelata ihe egwu nchekwa dị ka o kwere mee.
Aha m aha ngwa ọrụ ahụ fetchy
, n'ihi na ọ ... na-achọta ma na-eweta ... ihe a chọrọ [site na bekee "weta", "weta" - ihe ruru. uzo]. Ngwá ọrụ ahụ na-arụ ọrụ site na interface akara iwu, ma n'otu oge ahụ na-enye API.
Iji chịkọta onyonyo site na iji fetchy
(ka anyị were foto Python oge a), naanị ị ga-eji CLI dị ka nke a: fetchy dockerize python
. Enwere ike ịrịọ gị maka sistemụ arụmọrụ lekwasịrị anya yana codename n'ihi fetchy
ugbu a na-eji naanị ngwugwu dabere na Debian na Ubuntu.
Ugbu a ị nwere ike họrọ nke dabere na-adịghị mkpa ma ọlị (na anyị onodu) na-ewepu ha. Dịka ọmụmaatụ, Python dabere na perl, ọ bụ ezie na ọ na-arụ ọrụ nke ọma na-enweghị arụnyere Perl.
Результаты
Ihe oyiyi Python mepụtara site na iji iwu ahụ fetchy dockerize python3.5
na-atụ naanị 35MB (Eji m n'aka na n'ọdịnihu ọ nwere ike ime ka ọ dịkwuo ọkụ). Ọ tụgharịrị na anyị jisiri ike kpụpụ WW 15 ọzọ site na onyonyo na-enweghị isi.
Ị nwere ike ịhụ onyonyo niile anakọtara ruo ugbu a
oru ngo -
Ọ bụrụ na ị na-efu atụmatụ, dị nnọọ mepụta arịrịọ - M ga-enwe obi ụtọ inyere :) Ọbụna ihe ọzọ, m na-arụ ọrụ ugbu a na integrating ndị ọzọ ngwugwu njikwa n'ime fetchy, nke mere na ọ dịghị mkpa maka multi-ogbo ewu.
isi: www.habr.com