[reference to the American children's fairy tale "The Little Engine that Could" - approx. lane]*
Quomodo statim creare minima Docker imagines pro necessitatibus tuis
Obsession insolitus
Pro duobus praeteritis mensibus, obsessus sum quam parva imago Docker potest esse et adhuc applicationis cursus?
Intelligo, alienam opinionem.
Priusquam in singula et technicas rationes ingrediar, vellem exponere cur haec quaestio tantopere me afflixerit et quomodo ad te pertineat.
Quid magnitudine rerum
Reducendo contenta Docker imaginis, inde indicem vulnerabilium reducimus. Imagines insuper mundiores facimus, quia in iis tantum, quae ad applicationes ad currendum necessariae sunt, continent.
Est utilitas minoris momenti - imagines paulo celerius receptae sunt, sed, ut mea fert opinio, non ita magni momenti est.
Quaeso note: Si de magnitudine curas, Alpina ipsae parvae sunt aspectus et tibi verisimile convenit.
Distorless imagines
pip
ΠΈ apt
non operabitur;
FROM gcr.io/distroless/python3
RUN pip3 install numpy
Dockerfile Pythone per III diffidens imaginem
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 non est in imagine
Solet haec quaestio per multifariam aedificata solvitur:
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 scaena conventus
Eventus est imago 130MB in magnitudine. Non admodum malum! Ad comparationem: imago Pythonis default 929MB ponderat, et "tenuior" unum (3,7-slim
) - 179MB, imago alpina (3,7-alpine
) est 98,6MB.
Pulchrum est notare in exemplo praecedenti totam presulem describendo /usr/local/lib/python3.7/site-packages
quae clientelas continere non egent. Tametsi patet, magnitudinem Pythonis omnium turpium imaginum exsistentium differentiam variare.
In tempore scribendi Google multae imagines non sustinet: Java et Python adhuc in scaena experimentali sunt, et Python tantum exstat pro 2,7 et 3,5.
Minima imagines
Revertere ad obsessionem meam cum parvis imaginibus creando.
In genere volui videre quomodo imagines dissolutae construantur. Infirmus project utitur instrumentum fabricandi Google bazel
. Sed inaugurandi Bazelius et scribens imagines tuas proprias multum laboris sumpserunt (et ut honestum sit, rotam reinventionem ludi et institutionis). Minorum imaginum creationem simpliciorem reddere volui: actus efficiendi imaginem debet esse valde simplex; banal. Ut nullae sint tibi limae conformationis, una tantum linea in console: ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ <ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅>
.
Si igitur imagines tuas vis creare, cognosce: talis est singularis auctor imago; scratch
. Scalpe "vacua" imago est, nullae in eo lima sunt, quamvis defaltam - wow! - LXXVII bytes.
FROM scratch
Scalpe imaginem
Idea imaginis laesio est quod aliquas clientelas ex machina exercitus in illam effingere possis et eas intra Dockerfile vel utere (hoc est ut eas imitaris. apt
et de integro institue), vel postea cum Docker imago materiata est. Hoc permittit ut Docker continentis contenta omnino refrenare, et sic magnitudinem imaginis omnino refrenare.
Nunc necesse est has clientelas quodammodo colligere. Utilia existentium apt
permitto te fasciculos demittere, sed machinae hodiernae alligatae sunt et postea Fenestram vel MacOS non sustinent.
Ita institui ut instrumentum meum aedificaret qui imaginem basem quam minimae quantitatis possibilitatis statim aedificare vellet ac etiam omnem applicationem curreret. Usus sum fasciculis Ubuntu/Debianis, delectu (facultates directe ex repositoriis questus) et recursively eorum clientelas inveni. Propositum putabatur automatice recentem stabilitatem sarcinae deponere, pericula securitatis obscuratis quam maxime fieri.
Instrumentum nominavi fetchy
, quia invenit et fert... quod opus est.ex Anglica "afferre", "applicare" - approx. venellam]. Instrumentum facit per lineam interface imperantis, sed simul praebet API.
Ad imaginem convenire utens fetchy
hoc tempore Python imaginem accipiamus, hoc modo CLI uti necesse est: fetchy dockerize python
. Quaeri potest ad scopum operating ratio et codename quia fetchy
currently tantum fasciculis in Debian et Ubuntu utitur.
Nunc eligere potes quae clientelae non sunt necessariae (nostro contextu) easque excludere. Exempli gratia, Python a perl pendet, quamvis sine Perl fine opera inauguratus.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
Python imaginem creavit utens imperio fetchy dockerize python3.5
pondo 35MB tantum (certus sum quam ut in posterum etiam levius fieri possit). Evenit ut alium 15 WW de immediata imagine radere curemus.
Omnes imagines tantum collectas videre potes
Project -
Si lineamenta desunt, rogationem tantum crea - laetus ero ut adiuvent :) Etiam magis, nunc laboro in aliis involucris actoribus in lignarium, ita ut multi-aetatis aedificationes opus non sit.
Source: www.habr.com