[แแแแแจแแแแ แแแแ แแแฃแแ แกแแแแแจแแ แแฆแแแแ แแ โ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