ืืืฆื ืืืฆืืจ ืืืืคื ืืืืืืื ืชืืื ืืช 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/
ืืจืืื ืจื-ืฉืืืืช
ืืชืืฆืื ืืื ืชืืื ื ืืืืื 130MB. ืื ื ืืจื! ืืฉื ืืฉืืืื: ืชืืื ืช ืืจืืจืช ืืืืื ืฉื Python ืฉืืงืืช 929MB, ืื"ืืงื" ืืืชืจ (3,7-slim
) - 179MB, ืชืืื ื ืืืคืื ืืช (3,7-alpine
) ืืื 98,6MB, ืืขืื ืฉืืชืืื ื ืืืกืืกืืช ืืื ืืคืจืขื ืืืฉืืฉืช ืืืืืื ืืื 50,9MB.
ืื ืืืื ืืฆืืื ืฉืืืืืื ืืงืืืืช ืื ืื ื ืืขืชืืงืื ืกืคืจืืื ืฉืืื /usr/local/lib/python3.7/site-packages
, ืฉืขืฉืืืื ืืืืื ืชืืืช ืฉืืื ื ื ืฆืจืืืื. ืืืจืืช ืฉืืจืืจ ืฉืืคืจืฉ ืืืืื ืฉื ืื ืชืืื ืืช ืืืกืืก ืืงืืืืืช ืฉื Python ืืฉืชื ื.
ืืืื ืืชืืืช ืฉืืจืืช ืืื, Google distroless ืื ืชืืืืช ืืชืืื ืืช ืจืืืช: ื'ืืืื ืืคืืืชืื ืขืืืื ืืฉืื ืื ืืกืื, ืืคืืืชืื ืงืืืืช ืจืง ืขืืืจ 2,7 ื-3,5.
ืชืืื ืืช ืงืื ืื ืืช
ืืืืจื ืืืืืกืกืื ืฉืื ืืืฆืืจ ืชืืื ืืช ืงืื ืืช.
ืืืืคื ืืืื, ืจืฆืืชื ืืจืืืช ืืื ืื ืืืื ืืืืืืื ืืกืจื ืืขืฉื. ืืคืจืืืงื ืืกืจ ืืืจืืจ ืืฉืชืืฉ ืืืื ืืื ืืื ืฉื ืืืื bazel
. ืขื ืืืช, ืืชืงื ืช Bazel ืืืชืืืช ืชืืื ืืช ืืฉืื ืืงืื ืืจืื ืขืืืื (ืืืืขื ืืืืช, ืืืืฆืื ืืช ืืืืื ืืืืฉ ืื ืืืฃ ืืืืื). ืจืฆืืชื ืืคืฉื ืืช ืืืฆืืจื ืฉื ืชืืื ืืช ืงืื ืืช ืืืชืจ: ืืคืขืืื ืฉื ืืฆืืจืช ืชืืื ื ืฆืจืืื ืืืืืช ืคืฉืืื ืืืืชืจ, ืึผึธื ึธืืึดื. ืืื ืฉืื ืืืื ืงืืฆื ืชืฆืืจื ืขืืืจื, ืจืง ืฉืืจื ืืืช ืืืกืืฃ: ะฟัะพััะพ ัะพะฑัะฐัั ะพะฑัะฐะท ะดะปั <ะฟัะธะปะพะถะตะฝะธะต>
.
ืื, ืื ืืชื ืจืืฆื ืืืฆืืจ ืชืืื ืืช ืืฉืื, ืื ืืข: ืืฉ ืชืืื ืช ืืืงืจ ืืืืืืืช ืืื, scratch
. Scratch ืืื ืชืืื ื "ืจืืงื", ืืื ืื ืงืืฆืื, ืืืจืืช ืฉืืื ืฉืืงืืช ืืืจืืจืช ืืืื - ืืืื! - 77 ืืชืื.
FROM scratch
ืชืืื ื ืืฉืจืื
ืืจืขืืื ืฉื ืชืืื ืช ืฉืจืืื ืืื ืฉืืชื ืืืื ืืืขืชืืง ืืชืืื ืื ืชืืืช ืืืืืฉื ืืืืจื ืืืืฉืชืืฉ ืืื ืืชืื Dockerfile (ืื ืืื ืืืขืชืืง ืืืชื ื- apt
ืืืืชืงืื ืืืคืก), ืื ืืืืืจ ืืืชืจ ืืืฉืจ ืชืืื ืช Docker ืชืชืืืฉ. ืื ืืืคืฉืจ ืื ืืฉืืื ืืืืืืื ืขื ืืชืืื ืฉื ื-Docker, ืืืื ืืฉืืื ืืืืืืื ืืืืื ืืชืืื ื.
ืขืืฉืื ืื ืื ื ืฆืจืืืื ืืืืฉืื ืืืกืืฃ ืืช ืืชืืืช ืืืื. ืืืื ืงืืืืื ืืื apt
ืืืคืฉืจืื ืื ืืืืจืื ืืืืืืช, ืืื ืื ืงืฉืืจืืช ืืืืฉื ืื ืืืื, ืืืืจื ืืื, ืืื ื ืชืืืืืช ื-Windows ืื ื-MacOS.
ืื ืืฆืืชื ืืื ืืช ืืื ืืฉืื ืฉืืื ื ืืืืืืืืช ืชืืื ืช ืืกืืก ืืืืื ืืงืื ืืืืชืจ ืืืคืฉืจื ืืื ืืคืขืื ืื ืืคืืืงืฆืื. ืืฉืชืืฉืชื ืืืืืืืช ืืืืื ืื/ืืืืื, ืขืฉืืชื ืืืืจื (ืงืืืชื ืืืืืืช ืืฉืืจืืช ืืืืืืจืื) ืืืฆืืชื ืืืืคื ืจืงืืจืกืืื ืืช ืืชืืืช ืฉืืื. ืืชืืื ืืช ืืืืชื ืืืืจื ืืืืจืื ืืืืืืืืช ืืช ืืืจืกื ืืืฆืืื ืืืืจืื ื ืฉื ืืืืืื, ืืืืืขืจ ืืช ืกืืืื ื ืืืืืื ืืื ืืืคืฉืจ.
ืงืจืืชื ืืืื fetchy
, ืื ืืื... ืืืฆื ืืืืื... ืื ืฉืฆืจืื [ืืื ืืืืช "ืืืืื", "ืืืืื" - ืืขืจื. ื ืชืื]. ืืืื ืขืืื ืืจื ืืืฉืง ืฉืืจืช ืคืงืืื, ืื ืืืงืืื ืืฆืืข API.
ืืื ืืืจืืื ืชืืื ื ืืืืฆืขืืช fetchy
(ืืืื ื ืืงื ืชืืื ื ืฉื Python ืืคืขื), ืืชื ืจืง ืฆืจืื ืืืฉืชืืฉ ื-CLI ืื: fetchy dockerize python
. ืืืชืื ืฉืชืชืืงืฉื ืืืืื ืืช ืืขืจืืช ืืืคืขืื ืืืช ืฉื ืืงืื ืฉื ืืืขื ืืืืืื fetchy
ืืจืืข ืืฉืชืืฉ ืจืง ืืืืืืืช ืืืืืกืกืืช ืขื ืืืืื ืืืืืื ืื.
ืืขืช ืืชื ืืืื ืืืืืจ ืืืื ืชืืืช ืืื ื ื ืืืฆืืช ืืื (ืืืงืฉืจ ืฉืื ื) ืืื ืืืืื ืืืชื. ืืืืืื, Python ืชืืื ื-perl, ืื ืื ืื ืขืืื ืืฆืืื ืืื ืฉื-Perl ืืืชืงื.
ืืืฆืืื
ืชืืื ืช Python ื ืืฆืจื ืืืืฆืขืืช ืืคืงืืื fetchy dockerize python3.5
ืฉืืงื ืจืง 35MB (ืื ื ืืืชืจ ืืืืื ืฉืืขืชืื ืืคืฉืจ ืืืคืื ืืืชื ืืงื ืขืื ืืืชืจ). ืืกืชืืจ ืฉืืฆืืื ื ืืืื ืขืื 15 WW ืืืชืืื ื ืืกืจืช ืืืจืืจ.
ืืชื ืืืื ืืจืืืช ืืช ืื ืืชืืื ืืช ืฉื ืืกืคื ืขื ืื
ืคืจืืืงื -
ืื ืืกืจืื ืืื ืคืืฆ'ืจืื, ืคืฉืื ืฆืจื ืืงืฉื - ืืฉืื ืืขืืืจ :) ืืคืืื ืืืชืจ, ืืจืืข ืื ื ืขืืื ืขื ืฉืืืื ืื ืืื ืืืืืืช ืืืจืื ื-fetchy, ืื ืฉืื ืืืื ืฆืืจื ืืื ืืื ืืจืืื ืฉืืืื.
ืืงืืจ: www.habr.com