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
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
Poloketi -
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