[áĄááąáááááş áááąá¸ááťáŹá¸á ááášááŹááŽááŻáśááźááş "The Little Engine That Could" ááᯠáááŻá¸ááŹá¸ - áĄááŽá¸á ááşááŻáśá¸á áááşá¸áá˝áŹá¸]*

áááşá¸áá˛áˇáááŻáĄááşááťááşáĄáá˝ááş Docker ááŻáśááąá¸áá˝áąááᯠáĄáááŻáĄááťáąáŹááşáááşááŽá¸áááşá¸
ááŻáśáážááşáááŻááşááąáŹ Obsession
ááźáŽá¸áá˛áˇááąáŹáááťáŹá¸áĄáá˝ááşá¸á Docker ááŻáśáááş áááşááťážááąá¸áááşáááŻááşáááşááᯠááťá˝ááşáŻááş á á˝á˛áááşá¸ááąáá˛áˇááźáŽá¸ áĄáááŽááąá¸áážááşá¸ááᯠáááşáááşáááşáááşááąáá˛ááźá áşáááşá
ááŤááŹá¸áááşáááşá á áááşáá°á¸ááá°á¸áááşá¸áááşá
áĄááąá¸á áááşáážááˇáş áááşá¸áááŹáááŻááşá¸áááŻááşááŹááťáŹá¸ááᯠááťá˝ááşáŻááşáááąáˇááŹááŽá á¤ááźáżááŹáááş ááťá˝ááşáŻááşááᯠáĄáááşááźáąáŹááˇáş áĄáá˝ááşáĄáážáąáŹááşáĄáážááşááźá áşá áąááááşá¸á áááşá¸áááş áááˇáşáĄáŹá¸ áááşáááŻáˇá ááŻá¸ááááşááźáąáŹááşá¸ áážááşá¸ááźáááŻááŤáááşá
áĄáá˝ááşáĄá áŹá¸á ááŹááźáąáŹááˇáş áĄááąá¸ááźáŽá¸ááŹáá˛á
Docker ááŻáśá áĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠááťážáąáŹáˇááťááźááşá¸ááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş áĄáŹá¸áááşá¸ááťááşááťáŹá¸á áŹáááşá¸ááᯠááťážáąáŹáˇááťááąá¸ááŤáááşá áááŻáˇáĄááźááşá ááťá˝ááşáŻááşáááŻáˇáááş áĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠááŻááşááąáŹááşáááş áááŻáĄááşáááˇáşáĄááŹááťáŹá¸áᏠááŤáááşááąáŹááźáąáŹááˇáş ááŻáśááťáŹá¸ááᯠáááŻáááŻáááˇáşáážááşá¸á áąáááşá
ááąáŹááşáááş áĄáŹá¸ááŹááťááşááąá¸áá áşááŻáážáááąá¸áááş - ááŻáśáá˝áąááᯠááąáŤááşá¸ááŻááşááŻááşááᏠáááşá¸áááşá¸ááźááşááąáááˇáş ááťá˝ááşááąáŹáˇáşáĄááźááşáĄáááąáŹáˇ ááŤá ááááşáĄááąá¸áááźáŽá¸ááŤáá°á¸á
ááťáąá¸áá°á¸ááźáŻá áááááźáŻááŤ- áĄáá˝ááşáĄá áŹá¸áážááˇáş áááşáááşá áááşá ááŻá¸ááááşááŤáá Alpine ááŻáśááášááŹááşáááş ááąá¸áááşááźáŽá¸ áááˇáşáĄáá˝ááş áĄáśáááŻááşááźá áşáááŻááşáááşá
áĄáážááŻááşá¸áá˛áˇááŻáśááťáŹá¸
áĄááźáąááś âdistrolessâ ááŻáśááťáŹá¸ááᯠáá˝áąá¸ááťááşááąá¸áááşá áááşá¸áááŻáˇáá˝ááş package managersá shells áážááˇáş command line áá˝ááş áááşáá˝áąáˇááąáˇáážáááąáŹ áĄááźáŹá¸ utilities ááťáŹá¸ áááŤáááşááŤá ááááşáĄááąáá˛áˇ ááźááŻááşáá˛áˇ package managers áááŻááŻáśá¸ááŤá pip и apt áĄááŻááşáááŻááşááŤ
FROM gcr.io/distroless/python3
RUN pip3 install numpyPython 3 distroless ááŻáśááᯠáĄááŻáśá¸ááźáŻá Dockerfile
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 foundPip áááş ááŻáśáá˝ááşááážáááŤá
ááťáŹá¸ááąáŹáĄáŹá¸ááźááˇáş á¤ááźáżááŹááᯠmulti-stage build ááźááˇáş ááźáąáážááşá¸áááş-
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-stage á ááşá¸ááąá¸áá˝á˛
ááááşáááş 130MB áĄáá˝ááşáĄá
áŹá¸áážáááąáŹ ááŻááşááŻáśááźá
áşáááşá ááááşááááŻá¸ááŤáá°á¸! áážááŻááşá¸áážááşáááşáĄáá˝ááş- ááŻáśááą Python ááŻáśáááş 929MB áĄááąá¸ááťáááşáážáááźáŽá¸ "ááŤá¸áá˝ážáŹááąáŹ" ááŻáś (3,7-slim) - 179MBá áĄááşááşáááŻááşá¸ááŻááşááŻáś (3,7-alpine) áááş 98,6MB ááźá
áşááźáŽá¸ ááá°ááŹáá˝ááş áĄááŻáśá¸ááźáŻááŹá¸ááąáŹ áĄááźáąááś distroless ááŻáśáááş 50,9MB ááźá
áşáááşá
ááááşááá°ááŹáá˝ááş ááťá˝ááşáŻááşáááŻáˇáááş áááşá¸áá˝ážááşáá
áşááŻááŻáśá¸ááᯠáá°á¸áá°ááąááźááşá¸ááᯠááąáŹááşááźáááş ááťážáááŤáááşá /usr/local/lib/python3.7/site-packagesááťá˝ááşáŻááşáááŻáˇ ááááŻáĄááşááąáŹ áážáŽáááŻáážáŻááťáŹá¸ ááŤáááşáááŻááşáááşá áážáááźáŽá¸ááŹá¸ Python áĄááźáąááśááŻáśááťáŹá¸ áĄáŹá¸ááŻáśá¸á áĄáá˝ááşáĄá
áŹá¸ áá˝áŹááźáŹá¸ááťááşáážáŹ áá˝á˛ááźáŹá¸ááźáąáŹááşá¸ ááááŹáááşáážáŹá¸ááąáŹáşáááşá¸á
á áŹááąá¸ááąá ááşáá˝ááşá Google distroless áááş ááŻáśááťáŹá¸á á˝áŹááᯠááśáˇáááŻá¸áááąá¸ááŤ- Java áážááˇáş Python áááŻáˇáááş á ááşá¸áááşáá˛áĄáááˇáşáá˝ááş áážáááąáá˛ááźá áşááźáŽá¸ Python áááş 2,7 áážááˇáş 3,5 áĄáá˝ááşáᏠáážáááąááŤáááşá
ááŻáśááąá¸áá˝áą
ááŻáśááąá¸áá˝áąááᯠáááşááŽá¸áááŹááᯠá á˝á˛áááşá¸áážáŻááŽááᯠááźááşáá˝áŹá¸ááŤá
ááąáá°ááťáĄáŹá¸ááźááˇáşá áĄáážáąáŹááşáĄáážááşáááşá¸ááąáŹ ááŻáśááťáŹá¸ááᯠáááşáááŻáˇáááşááąáŹááşááŹá¸áááşááᯠááťá˝ááşáŻááşááźááˇáşááťááşáááşá distroless áááąáŹááťááşáááş Google ááááşááąáŹááşááąá¸ááááááŹáááŻáĄááŻáśá¸ááźáŻáááşá bazel. áááŻáˇááąáŹáşá Bazel áááŻáááˇáşáá˝ááşá¸ááźáŽá¸ áááˇáşáááŻááşáááŻááşááŻáśááťáŹá¸áááŻááąá¸ááźááşá¸áááş áĄááŻááşááťáŹá¸á
á˝áŹáá°áá˛áˇááááş (áááŻá¸áááŻá¸ááŹá¸ááŹá¸ááźáąáŹáááťážááşá ááŽá¸áááŻááźááşáááşááŽáá˝ááşááźááşá¸áááş ááťáąáŹáşá
ááŹááąáŹááşá¸ááźáŽá¸ áááŹááąá¸áážáŻááźá
áşáááş)á ááŻááşááŻáśáĄááąá¸ááąá¸áá˝áą áááşááŽá¸áážáŻááᯠáááŻá¸áážááşá¸á
áąááťááşááŤáááş- ááŻáśáá
áşááŻáśáááşááŽá¸ááźááşá¸ááŻááşáááşáááş áĄáá˝ááşáááŻá¸áážááşá¸áááˇáşáááşá banal. áááŻáˇááźáąáŹááˇáş áááˇáşáĄáá˝ááş configuration áááŻááşááťáŹá¸ááážáá
áąáááşá console áá˝ááş á
áŹááźáąáŹááşá¸áá
áşááźáąáŹááşá¸ááŹáážááááşá ĐżŃĐžŃŃĐž ŃОйŃаŃŃ ĐžĐąŃаС Đ´ĐťŃ <ĐżŃиНОМонио>.
áááŻáˇááźáąáŹááˇáşá áááşáááşáááşááááŻááşáááŻááşááŻáśááťáŹá¸áááŻáááşááŽá¸áááŻááŤáááá፠- áááŻáá˛áˇáááŻáˇááąáŹáá°á¸ááźáŹá¸ááąáŹ docker ááŻáśáážáááŤáááşá scratch. ááźá
áşááŹáááş 'áĄáá˝ááş' ááŻáśááźá
áşáááşá áááşá¸áááş áá°áááşá¸áĄáááŻááşá¸ áĄááąá¸ááťáááşáážáááąáŹáşáááşá¸ áááşá¸áá˝ááş áááŻááşááťáŹá¸ááážáá፠- wow! - 77 bytes á
FROM scratchááźá áşááŻáś
ááźá
áşááŹááŻáśáá
áşááŻáśáá
áááşáá°á¸áážáŹ host machine ááž áááşáááˇáşáážáŽáááŻáĄáŹá¸ááŹá¸áážáŻáááŻáááᯠáááşá¸áá˛áááŻáˇáá°á¸áá°áááŻááşááźáŽá¸ Dockerfile áĄáá˝ááşá¸áá˝ááşááźá
áşá
áą áĄááŻáśá¸ááźáŻáááŻááşáááşá apt áážááˇáş áĄá
áážááąá áááˇáşáá˝ááşá¸ááŤ) áááŻáˇáááŻááş Docker ááŻáśááᯠááŻááşááŻáśá¸ááąáŤáşááŹááąáŹáĄááŤá áááşá¸áááş áááˇáşáĄáŹá¸ Docker áá˝ááşááááşááŹá áĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠááŻáśá¸ááŻáśá¸ááťáŹá¸ááťáŹá¸ ááááşá¸ááťáŻááşáááŻááşá
áąááźáŽá¸á áááŻáˇááźáąáŹááˇáş ááŻáśá áĄáá˝ááşáĄá
áŹá¸ááᯠááŻáśá¸á ááááşá¸ááťáŻááşáááŻááşáááşááźá
áşáááşá
ááᯠááťá˝ááşáŻááşáááŻáˇáááş á¤áážáŽáááŻáĄáŹá¸ááŹá¸áážáŻááťáŹá¸ááᯠáá
áşáááşá¸áááşá¸ááźááˇáş á
áŻááąáŹááşá¸áááş áááŻáĄááşááŤáááşá áážáááźáŽá¸ááŹá¸ tools áá˝áąáááŻááťááŻá¸ apt package áá˝áąááᯠdownload ááŻááşáá˝ááˇáşááźáŻááąáááˇáş áááşáážáá
ááşáá˛áˇ ááťáááşáááşááŹá¸ááźáŽá¸ ááąáŹááşááŻáśá¸áážáŹááąáŹáˇ support áááŻááşááŤáá°á¸á Windows áááŻáˇáááŻááş MacOSá
ááŤááźáąáŹááˇáş ááťá˝ááşááąáŹáş áááŻááşáááŻááş tool áá áşáᯠáááşááąáŹááşáááŻáˇ ááŻáśá¸ááźááşáááŻááşáááşá áĄá˛ááŤá áĄáá˝ááşáĄá áŹá¸ áĄááąá¸áááşááŻáśá¸ base image áá áşááŻááᯠáĄáááŻáĄááťáąáŹááş áááşááąáŹááşááąá¸ááźáŽá¸ application áááŻááşá¸ááᯠrun ááąá¸áááˇáş tool áá áşááŻááŤá ááťá˝ááşááąáŹáş package áá˝áąááᯠááŻáśá¸áá˛áˇááŤáááşá Ubuntu/Debianá áá˝áąá¸ááťááşáážáŻááᯠááŻááşááąáŹááşáá˛áˇáááş (repositories ááž package ááťáŹá¸ááᯠáááŻááşáááŻááşááá°ááźááşá¸) áážááˇáş áááşá¸áááŻáˇá dependencies ááťáŹá¸ááᯠáááşááŤááá˛áᲠáážáŹáá˝áąáá˛áˇáááşá ááááŻááááşáááş ááŻáśááźáŻáśááąá¸áĄáášáááŹááşááťáŹá¸ááᯠááťážáąáŹáˇááťáááş package á ááąáŹááşááŻáśá¸áá˝ááş stable version ááᯠáĄáááŻáĄááťáąáŹááş download ááŻááşáááş áááşáá˝ááşáá˛áˇáááşá
ááťá˝ááşááąáŹáş tool ááᯠááŹáááşááąá¸áááŻááşáááşá fetchyááŹááźáąáŹááˇáşáᲠáááŻááąáŹáˇ áá°á ... áááŻáĄááşááŹáá˝áąááᯠáážáŹáá˝áąááźáŽá¸ áá°ááŹááąá¸áá˛áˇáĄáá˝ááş ...áĄááşášáááááşááśááž "áá°ááąáŹááşáááş"á "áá°ááąáŹááşáááş" - áááˇáşáážááşá¸ááźáąá áááşá¸áá˝áŹá¸] ááááááŹáááş command line interface áážááááˇáşáĄááŻááşááŻááşáááşá áááŻáˇááąáŹáşáá
áşááťáááşáááşá¸áá˝ááş API áááŻááąá¸áááşá
ááŻáśáá
áşááŻáśááᯠáĄááŻáśá¸ááźáŻá á
áŻá
ááşá¸áááş fetchy (ááŽáá
áşááŤááąáŹáˇ Python ááŻáśáá
áşááŻáśááąáŹááşáá°ááźááˇáşááĄáąáŹááş)á áááşáááşá¤áá˛áˇáááŻáˇááąáŹ CLI áááŻáĄááŻáśá¸ááźáŻáááşááŹáááŻáááş- fetchy dockerize python. áá
áşáážááşáááşáááşáážáŻá
áá
áşáážááˇáş ááŻááşáĄáááşáĄáá˝ááş áááˇáşáĄáŹá¸ ááąáŹááşá¸áááŻáááŻááşááąáŹááźáąáŹááˇáşááźá
áşáááşá fetchy áááşáážááá˝ááş áĄáąáŹááşááŤáááŻáˇááᯠáĄááźáąááśá package ááťáŹá¸áááŻáᏠáĄááŻáśá¸ááźáŻááŤáááş Debian и Ubuntu.
ááᯠáááşáááş áááşáááˇáşáážáŽáááŻáĄáŹá¸ááŹá¸áážáŻááťááŻá¸áááᯠ(ááťá˝ááşáŻááşáááŻáˇááĄááźáąáŹááşá¸áĄááŹáá˝ááş) áá˝áąá¸ááťááşáááŻááşááźáŽá¸ áááşá¸áááŻáˇááᯠáááşááŻááşáááŻááşáááşá áĽáááŹáĄáŹá¸ááźááˇáşá Python áááş Perl ááąáŤáşáá˝ááşáá°áááşááąáŹáşáááşá¸ Perl áááˇáşáá˝ááşá¸ááźááşá¸ááážááᲠááąáŹááşá¸áá˝ááşá á˝áŹáĄááŻááşááŻááşáááşá
ááááşááťáŹá¸áááŻ
Python image áááş command ááᯠáĄááŻáśá¸ááźáŻá áááşááŽá¸ááŹá¸áááşá fetchy dockerize python3.5 áĄááąá¸ááťáááşá 35MB áá˛áážáááŤáááş (áĄááŹáááşáážáŹ áááŻááąáŤáˇááŤá¸ááŹáážáŹ ááąááťáŹááŤáááş)á ááťá˝ááşáŻááşáááŻáˇáááş áĄáážááŻááşá¸áá˛áˇááŻáśááž ááąáŹááşáááş 15 WW ááᯠááááşáááŻááşáá˛áˇááźáąáŹááşá¸ áá˝áąáˇáážááááŤáááşá
áááŻáĄááťáááşáĄáá á áŻááąáŹááşá¸ááŹá¸ááąáŹ ááŻáśáĄáŹá¸ááŻáśá¸ááᯠáááşááźááşáááŻááşáááşá .
á áŽááśááááşá¸- .
áááşáááş áĄááşášááŤáááşááťáŹá¸ ááťáąáŹááşááŻáśá¸ááąááŤá ááąáŹááşá¸áááŻáážáŻáá áşááŻááᯠáááşááŽá¸á፠- ááťá˝ááşáŻááşáááş áá°ááŽáááş ááťáąáŹáşáá˝ážááşááąáááş :) áááŻáˇáááşááá áĄááźáŹá¸ááąáŹ áááşááąáˇááťáşáááşááąááťáŹááťáŹá¸ááᯠfetchy áĄááźá áş ááąáŤááşá¸á ááşááŻááşááąáŹááşááąááąáŹááźáąáŹááˇáş áĄáááˇáşááąáŤááşá¸ááťáŹá¸á á˝áŹ áááşááąáŹááşáážáŻááťáŹá¸ ááźáŻááŻááşáááş ááááŻáĄááşááąáŹáˇááŤá
source: www.habr.com
