[แแแแแจแแแแ แแแแ แแแฃแแ แกแแแแแจแแ แแฆแแแแ แแ โThe Little Engine That Couldโ - แแแแฎแ. แจแแกแแฎแแแแ]*

แ แแแแ แจแแแฅแแแแ แแแขแแแแขแฃแ แแ แแแขแแ แ Docker แกแฃแ แแแแแ แแฅแแแแ แกแแญแแ แแแแแกแแแแก
แแ แแฉแแแฃแแแแ แแแ แแแแแแขแแแ
แแแแ แ แแแแแแแแ แแแแก แแแแแแแแแแแจแ, แแ แแแงแแแ แจแแแงแ แแแแแ แแแแ, แแฃ แ แแแแแแแ แแแขแแ แ แจแแแซแแแแ แแงแแก Docker แแแแแกแแฎแฃแแแแ แแ แฏแแ แแแแแ แแฅแแแแแก แแแแแแแชแแ แแแจแแแแฃแแ?
แแแกแแแก, แแแแ แฃแชแแแฃแ แแ.
แกแแแแ แแแขแแแแแกแ แแ แขแแฅแแแแฃแ แกแแแแแฎแแแก แจแแแแฎแแแ, แแกแฃแ แก แแแแฎแกแแแ, แ แแขแแ แแแฌแฃแฎแแแก แแก แแ แแแแแแ แแกแ แแ แ แแแแ แแแฎแแแ แแฅแแแ.
แ แแขแแ แแฅแแก แแแแแก แแแแจแแแแแแแ
Docker แแแแแกแแฎแฃแแแแแก แจแแแแแ แกแแก แจแแแชแแ แแแแ, แฉแแแ แแแแ แแแแชแแ แแแ แแแฃแชแแแแแ แกแแแก. แแแ แแ แแแแกแ, แฉแแแ แกแฃแ แแแแแก แแแกแฃแคแแแแแแ, แ แแแแแ แแกแแแ แจแแแชแแแก แแฎแแแแ แแแแก, แ แแช แกแแญแแ แแ แแแแแแแชแแแแแก แแแกแแจแแแแแ.
แแ แแก แแแแแ แแ แแ แแชแแ แ แฃแแแ แแขแแกแแแ - แกแฃแ แแแแแแก แฉแแแแขแแแ แแแ แชแแขแ แฃแคแ แ แกแฌแ แแคแแ แฎแแแแ, แแแแ แแ, แฉแแแ แแแ แแ, แแก แแ แช แแกแ แแแแจแแแแแแแแแแ.
แแแฎแแแ แแแแแแแแแกแฌแแแแ: แแฃ แแฅแแแ แแแแแขแแ แแกแแแ แแแแ, แแแแแ แแแแฃแ แ แแแ แแแแแแ แแแขแแ แแ แแ แกแแแแ แแฃแแแ แแแแแ แแแแแ.
แแแฃแชแแแแ แกแฃแ แแแแแ
แแแแแแแแแแก แซแแ แแแแแ โแแแฃแกแแคแ แแฎแโ แกแฃแ แแแแแแก แแ แฉแแแแแก, แแกแแแ แแ แจแแแชแแแก แแแแแขแแก แแแแแฏแแ แแแก, แญแฃแ แแแแก แแ แกแฎแแ แแแแฃแแแแฃแ แแ แแแ แแแแแก, แ แแแแแแ แแแฎแแแกแแช แแฅแแแ แจแแฉแแแฃแแ แฎแแ แ แแ แซแแแแแแก แกแขแ แแฅแแแแ. แจแแแแแแ, แแแแแแงแแแแ แแแแแขแแก แแแแแฏแแ แแแ, แ แแแแ แแชแแ pip ะธ apt แแ แแแฃแจแแแแแก:
FROM gcr.io/distroless/python3
RUN pip3 install numpy
Dockerfile Python 3-แแก แแแ แแจแ แแแแแกแแฎแฃแแแแแก แแแแแงแแแแแแ
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
แแแแ แแ แแ แแก แกแฃแ แแแแ
แ แแแแ แช แฌแแกแ, แแก แแ แแแแแแ แแแแแแ แแแฃแแแ แแ แแแแแกแแคแแฎแฃแ แแแแ แแแแแแ:
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/
แแ แแแแแกแแคแแฎแฃแ แแแแ แจแแแ แแแ
แจแแแแแ แแ แแก แกแฃแ แแแ 130 แแ แแแแแก. แฒแ แแ แแก แซแแแแแ แชแฃแแ! แจแแแแ แแแแกแแแแก: แแแแฃแแแกแฎแแแแ แแแแแแแก แกแฃแ แแแ แแฌแแแแก 929 แแ-แก, แฎแแแ "แฃแคแ แ แแฎแแแ" (3,7-slim) - 179 แแ, แแแแฃแ แ แกแฃแ แแแ (3,7-alpine) แแ แแก 98,6 แแ, แฎแแแ แแแแแแแแจแ แแแแแงแแแแแฃแแ แกแแแแแแกแ แฃแแแกแขแ แแแ แกแฃแ แแแ แแ แแก 50,9 แแ.
แกแแแแ แแแแแแแ แแฆแแแแจแแ, แ แแ แฌแแแ แแแแแแแแจแ แฉแแแ แแแแแแแ แแแ แแแแ แแแ แแฅแขแแ แแแก /usr/local/lib/python3.7/site-packages, แ แแแแแแช แจแแแซแแแแ แจแแแชแแแแแก แแแแแแแแแแฃแแแแแแก, แ แแแแแแแช แแ แแแญแแ แแแแ. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แชแฎแแแแ, แ แแ แแแแแแแก แแแแแก แงแแแแ แแ แกแแแฃแแ แกแฃแ แแแแก แแแแแก แแแแกแฎแแแแแแ แแแแกแฎแแแแแแแ.
แฌแแ แแก แแแแแแขแจแ Google distroless แแ แฃแญแแ แก แแฎแแ แก แแแแ แกแฃแ แแแก: Java แแ Python แฏแแ แแแแแ แแฅแกแแแ แแแแแขแฃแ แแขแแแแแ แแ Python แแฎแแแแ 2,7 แแ 3,5-แแกแแแแก แแ แกแแแแแก.
แแแขแแ แ แกแฃแ แแแแแ
แแแแฃแแ แฃแแแ แฉแแแก แแแแแแขแแแแก แแแขแแ แ แกแฃแ แแแแแแก แจแแฅแแแแ.
แแแแแแแ, แแแแแแแ แแแแแฎแ, แ แแแแ แแฅแแแแแ แฃแแแงแแคแ แกแฃแ แแแแแ. แฃแกแแกแ แฃแแ แแ แแแฅแขแ แแงแแแแแก Google-แแก build-แแก แแแกแขแ แฃแแแแขแก bazel. แแฃแแชแ, Bazel-แแก แแแงแแแแแแกแ แแ แกแแแฃแแแ แ แกแฃแ แแแแแแก แแแฌแแ แแก แแแแ แจแ แแแ แแแกแญแแ แแ (แแ แแแ แแแแ แแแแฎแ แแ, แแแ แแแแก แฎแแแแฎแแ แแแแแแแแแแ แกแแฎแแแแกแ แแ แกแแแแแแแแแแแแแแแ). แแ แแแแแแแ แแแแแ แขแแแแแฃแแแงแ แแแขแแ แ แกแฃแ แแแแแแก แจแแฅแแแ: แกแฃแ แแแแก แจแแฅแแแแก แแฅแขแ แฃแแแ แแงแแก แซแแแแแ แแแ แขแแแ, แแแแแแฃแ แ. แแกแ, แ แแ แแ แแงแแก แแฅแแแแแแแก แแแแคแแแฃแ แแชแแแก แคแแแแแแ, แแฎแแแแ แแ แแ แฎแแแ แแแแกแแแจแ: ะฟัะพััะพ ัะพะฑัะฐัั ะพะฑัะฐะท ะดะปั <ะฟัะธะปะพะถะตะฝะธะต>.
แแกแ แ แแ, แแฃ แแกแฃแ แ แจแแฅแแแแ แแฅแแแแ แกแแแฃแแแ แ แกแฃแ แแแแแ, แแแจแแ แแชแแแแ: แแ แกแแแแแก แแกแแแ แฃแแแแแแฃแ แ แแแแแ แแก แกแฃแ แแแ, scratch. Scratch แแ แแก "แชแแ แแแแ" แกแฃแ แแแ, แแแกแจแ แคแแแแแแ แแ แแ แแก, แแฃแแชแ แแก แแฌแแแแก แแแแฃแแแกแฎแแแแแ - แแแ! - 77 แแแแขแ.
FROM scratch
แแแแแฌแ แ แแแแแกแแฎแฃแแแแ
แแแแแฌแ แแก แแแแแกแแฎแฃแแแแแก แแแแ แแ แแก แแก, แ แแ แแฅแแแ แจแแแแซแแแแ แแแแแแแแ แแ แแแกแจแ แแ แกแแแฃแแ แแแแแกแแแแ แ แแแแแแแแแแฃแแแแ แแแกแแแแซแแแ แแแแ แแขแแแแ แแ แแแแแแงแแแแ แแกแแแ Dockerfile-แจแ (แแก แฐแแแแก แแแ แแแแแ แแแแก apt แแ แแแแแแกแขแแแแ แแ แแฃแแแแแ), แแ แแแแแแแแแแแ, แ แแแแกแแช Docker แแแแแกแแฎแฃแแแแ แแแขแแ แแแแแแแแแ. แแก แกแแจแฃแแแแแแก แแแซแแแแ แกแ แฃแแแ แแแแแขแ แแแแ Docker แแแแขแแแแแ แแก แจแแแแแ แกแ แแ, แแแ แแแแ, แแแแแแแแ แแแแแแแขแ แแแแ แกแฃแ แแแแก แแแแ.
แแฎแแ แฉแแแ แ แแแแ แแ แฃแแแ แจแแแแแ แแแแ แแก แแแแแแแแแแฃแแแแแแ. แแ แกแแแฃแแ แแแกแขแ แฃแแแแขแแแ, แ แแแแ แแชแแ apt แกแแจแฃแแแแแแก แแแซแแแแ แฉแแแแขแแแ แแแ แแแแแขแแแ, แแแแ แแ แแกแแแ แแแแแแจแแ แแแฃแแแ แแแแแแแแ แ แแแฌแงแแแแแแแแกแแแ แแ, แกแแแแแแ แฏแแแจแ, แแ แฃแญแแ แแ แแฎแแ แก Windows แแ MacOS-แ.
แแแแขแแ แแแแแแฌแงแแแขแ, แจแแแแฅแแแ แกแแแฃแแแ แ แแแกแขแ แฃแแแแขแ, แ แแแแแแช แแแขแแแแขแฃแ แแ แจแแฅแแแแแ แงแแแแแแ แแแขแแ แ แแแแแก แกแแแแแแกแ แกแฃแ แแแก แแ แแแแแกแแแแ แ แแแแแแแชแแแก แแแจแแแแแก แฃแแ แฃแแแแแงแแคแแ. แแ แแแแแแแงแแแ แแแแแขแแแ. Ubuntu/Debian, แจแแแกแ แฃแแ แจแแ แฉแแแ (แแแแแขแแแแก แแแ แแแแแ แกแแชแแแแแแแแ แแแซแแแแ) แแ แ แแแฃแ แกแแฃแแแ แแแแแ แแแแ แแแแแแแแแแฃแแแแแแ. แแ แแแ แแแแก แแแขแแแแขแฃแ แแ แฃแแแ แฉแแแแแขแแแ แแ แแแแแขแแก แฃแแฎแแแกแ แกแขแแแแแฃแ แ แแแ แกแแ, แ แแช แแแแแแฃแแแแแ แแแแงแแแแแแแแ แฃแกแแคแ แแฎแแแแแก แ แแกแแแแ.
แฎแแแกแแฌแงแแก แแแแแ แฅแแแ fetchy, แ แแแแแ แแก... แแแฃแแแแก แแ แแแแฅแแก... แ แแช แกแแญแแ แแ [แแแแแแกแฃแ แแแแ "แแแขแแแ", "แแแขแแแ" - แแแแฎแ. แจแแกแแฎแแแแ]. แแแกแขแ แฃแแแแขแ แแฃแจแแแแก แแ แซแแแแแแก แฎแแแแก แแแขแแ แคแแแกแแก แกแแจแฃแแแแแแ, แแแแ แแ แแแแแ แแ แแก แแแแแแแแแ API-แก.
แแแแแกแแฎแฃแแแแแก แแฌแงแแแ แแแแแงแแแแแแ fetchy (แแแฏแแ แแ แแแแฆแแ แแแแแแแก แกแฃแ แแแ), แแฅแแแ แฃแแ แแแแ แฃแแแ แแแแแแงแแแแ CLI แแกแ: fetchy dockerize python. แจแแแซแแแแ แแแแแแฎแแแแ แกแแแแแแ แแแแ แแชแแฃแแ แกแแกแขแแแ แแ แแแแแก แกแแฎแแแ, แ แแแแแ fetchy แแแแแแแ แแฎแแแแ แแแแแขแแแก แแงแแแแแก Debian ะธ Ubuntu.
แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแ แฉแแแ แ แแแแแ แแแแแแแแแแฃแแแแแแ แกแแแ แแแ แแ แแ แแก แกแแญแแ แ (แฉแแแแก แแแแขแแฅแกแขแจแ) แแ แแแแแ แแชแฎแแ แแกแแแ. แแแแแแแแแ, Python แแแแแแแแแแฃแแแ perl-แแ, แแฃแแชแ แแก แแแ แแแ แแฃแจแแแแก Perl-แแก แแแงแแแแแแก แแแ แแจแ.
แแแกแแแแแแ
แแ แซแแแแแแก แแแแแงแแแแแแ แจแแฅแแแแแ แแแแแแแก แกแฃแ แแแ fetchy dockerize python3.5 แแฌแแแแก แแฎแแแแ 35 แแ (แแแ แฌแแฃแแแแฃแแ แแแ , แ แแ แแแแแแแแจแ แจแแแซแแแแ แแแแแ แฃแคแ แ แแกแฃแแฃแฅแ แแแฎแแแก). แแแแแแแก, แ แแ แฉแแแ แแแแแฎแแ แฎแแ แแแแแ 15 WW-แแก แแแแแ แกแแ แฃแแแงแแคแ แกแฃแ แแแแแแ.
แแฅแแแแ แจแแแ แแแแแฃแแ แงแแแแ แกแฃแ แแแแก แแแฎแแ แจแแแแซแแแแ .
แแ แแแฅแขแ - .
แแฃ แคแฃแแฅแชแแแแ แแแแแแ, แฃแแ แแแแ แจแแฅแแแแแ แแแแฎแแแแ - แกแแแแแแแแแแ แแแแแฎแแแ แแแแ :) แฃแคแ แ แแแขแแช, แแแแแแแ แแแฃแจแแแ แกแฎแแ แแแแแขแแก แแแแแฏแแ แแแแก fetchy-แจแ แแแขแแแ แแ แแแแแ, แ แแแ แแ แแงแแก แกแแญแแ แ แแ แแแแแกแแคแแฎแฃแ แแแแ แแแแกแขแ แฃแฅแชแแแแ.
แฌแงแแ แ: www.habr.com
