Tiny Docker ata na talitonu ia i latou lava *

[faʻasino i le tala fagogo a tamaiti Amerika "The Little Engine That Could" - approx. ala]*

Tiny Docker ata na talitonu ia i latou lava *

Faʻafefea ona otometi ona fatuina ata Docker laiti mo ou manaʻoga

Fa'amata'u Tulaga

Mo le lua masina ua tuanaʻi, ua ou popole i le laʻititi o se ata Docker e mafai ma o loʻo faʻaauau pea le talosaga?

Ou te malamalama, e ese le manatu.

Ae ou te leʻi oʻo i faʻamatalaga ma mea faʻapitoa, ou te fia faʻamatalaina pe aisea na faʻalavelave tele ai lenei faʻafitauli ia te aʻu, ma pe faʻafefea ona e popole ai.

Aisea e taua ai le tele

I le faʻaitiitia o mea o loʻo i totonu o le ata Docker, matou te faʻaitiitia ai le lisi o faʻafitauli. E le gata i lea, matou te faʻamamaina ata, aua o loʻo i ai naʻo mea e manaʻomia e faʻatautaia ai talosaga.

O loʻo i ai se isi mea itiiti - o ata e sii mai i luga o sina vave, ae, i loʻu manatu, e le taua tele.

Faamolemole ia matau: Afai e te popole i le tele, o le Alpine e foliga mai e laʻititi ma e mautinoa e fetaui ma oe.

Ata e leai ni fa'alavelave

Poloketi Distroless ofo atu se filifiliga o ata "distroless" autu, latou te le aofia ai pule o pusa, atigi ma isi mea aoga e masani ona e vaʻai i luga o le laina faʻatonu. O le iʻuga, faʻaaoga pusa pule e pei pip и apt e le aoga:

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

Dockerfile faʻaaoga le Python 3 faʻaleagaina ata

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 e le o iai i le ata

E masani lava o lenei faʻafitauli e foia e ala i le fausiaina o le tele o laasaga:

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/

Fa'apotopotoga fa'atele

O le taunuuga o se ata o le 130MB le tele. E le leaga tele! Mo faʻatusatusaga: o le faʻaogaina o le ata Python e mamafa 929MB, ma le "mea manifinifi" tasi (3,7-slim) - 179MB, ata alpine (3,7-alpine) o le 98,6MB, aʻo le faʻavae le faʻaogaina ata faʻaaogaina i le faʻataʻitaʻiga o le 50,9MB.

E fetaui lelei le faʻailoa atu o le faʻataʻitaʻiga muamua o loʻo matou kopiina se lisi atoa /usr/local/lib/python3.7/site-packages, lea e ono iai ni fa'alagolago tatou te le mana'omia. E ui ina manino o le eseesega tele o ata uma o loʻo iai Python faavae e eseese.

I le taimi o le tusitusi, Google distroless e le lagolagoina le tele o ata: Java ma Python o loʻo i ai pea i le faʻataʻitaʻiga, ma Python e naʻo le 2,7 ma le 3,5.

Ata laiti

Toe fo'i i lo'u naunau i le faia o ata laiti.

I se tulaga lautele, sa ou manaʻo e vaʻai pe faʻafefea ona fausia ata e leai ni faʻalavelave. O le fa'alavelave fa'alavelave e fa'aogaina le meafaigaluega faufale a Google bazel. Ae ui i lea, o le faʻapipiʻiina o Bazel ma le tusiaina o au lava ata e tele se galuega (ma e faʻamaoni, o le toe faʻafouina o le uili e malie ma aʻoaʻoga). Na ou manaʻo e faʻafaigofie le fatuina o ata laiti: o le gaioiga o le fatuina o se ata e tatau ona matua faigofie, tapu. Ina ia leai ni faila faʻatulagaina mo oe, naʻo le tasi le laina i le faʻamafanafanaga: просто собрать образ для <приложение>.

O lea la, afai e te manaʻo e fai au lava ata, ia e iloa: o loʻo i ai se faʻailoga tulaga ese, scratch. Scratch o se ata "gaogao", e leai ni faila i totonu, e ui lava e mamafa ona o le faaletonu - wow! - 77 paita.

FROM scratch

Ata togi

O le manatu o se ata mataʻutia e mafai ona e kopiina soʻo se faʻalagolago mai le masini talimalo i totonu ma faʻaaogaina i totonu o se Dockerfile (e pei o le kopiina i latou i apt ma faʻapipiʻi mai le sasa), pe mulimuli ane pe a faʻaalia le ata Docker. O lenei mea e mafai ai e oe ona pulea atoatoa mea o loʻo i totonu o le Docker container, ma faʻapea ona pulea atoatoa le tele o le ata.

Ole taimi nei e tatau ona tatou aoina mai nei fa'alagolago. Meafaigaluega oi ai nei pei apt fa'atagaina oe e sii mai afifi, ae o lo'o nonoa i le masini o lo'o i ai nei ma, mulimuli ane, e le lagolagoina Windows po'o MacOS.

O lea na ou alu ai e fausia laʻu lava meafaigaluega e otometi lava ona fausia se ata faavae o le laʻititi laʻititi laʻititi ma faʻatautaia ai soʻo se talosaga. Na ou faʻaogaina pusa Ubuntu / Debian, faia se filifiliga (maua saʻo mai pusa mai fale teu oloa) ma toe maua o latou faʻalagolago. O le polokalame e tatau ona otometi lava ona sii maia le lomiga mautu fou o le afifi, faʻaitiitia ai lamatiaga saogalemu i le tele e mafai ai.

Sa ou faaigoaina le meafaigaluega fetchy, aua na te... maua ma aumai... mea e manaomia [mai le Igilisi “aumai”, “aumai” - pe tusa. auala]. O le meafaigaluega e galue e ala i se faʻatonuga laina laina, ae i le taimi lava e tasi e ofoina atu se API.

E faʻapipiʻi se ata faʻaaoga fetchy (tatou ave se ata Python i le taimi nei), e tatau ona e faʻaogaina le CLI pei o lenei: fetchy dockerize python. Atonu e fesiligia oe mo le faiga faagaioia sini ma codename ona fetchy i le taimi nei naʻo faʻaaogaina afifi e faʻavae i Debian ma Ubuntu.

Ole taimi nei e mafai ona e filifili po'o fea fa'alagolago e le mana'omia (i la tatou fa'amatalaga) ma fa'aesea. Mo se faʻataʻitaʻiga, e faʻalagolago le Python i le perl, e ui lava e aoga lelei e aunoa ma le faʻapipiʻiina o Perl.

Iʻuga

Ata Python na faia e faʻaaoga ai le poloaiga fetchy dockerize python3.5 e na o le 35MB le mamafa (Ou te mautinoa i le lumanaʻi e mafai ona faʻamama atili). E foliga mai na mafai ona matou tafi ese le isi 15 WW mai le ata le mautonu.

E mafai ona e vaʻai i ata uma na aoina i le taimi nei iinei.

Poloketi - iinei.

Afai o loʻo e misia ni foliga, naʻo le fatuina o se talosaga - O le a ou fiafia e fesoasoani :) E sili atu, o loʻo ou galue nei i le tuʻufaʻatasia o isi pule o pusa i fetchy, ina ia leai se manaʻoga mo le tele o laasaga fausia.

puna: www.habr.com

Faaopoopo i ai se faamatalaga