[ααααα ααΏααα·ααΆααααααα»ααΆαα’αΆαααα·α "αααΆαααΈαααΌα αααα’αΆα " - αααα αΆαααααα ααα ααααΌα]*
αααααααααΎαααΌαααΆα 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
Pip αα·αααΆααα αααα»αααΌαααΆαααα
ααΆααααααΆαααα αΆαααααααΌαααΆααααααααΆααααααΆαααααΆαααΆαα α»ααααΆααααΆαα
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 αα·αααΆααααααΌαααΆαα αααΎαααα Java αα·α Python αα αααααα·ααααα»αααααΆααααΆααα·ααααα α αΎα Python ααΆααααααΆαααα 2,7 αα·α 3,5 ααα»αααααα
ααΌαααΆαααΌα α
αααααααα ααΆααα·ααααααααα»αααΆαα½αααΆααααααΎαααΌαααΆαααΌα αα
ααΆααΌαα
αααα»αα
ααααΎαααΈαααααααααΌαααΆααααααααΆαααΆαααααΆαααααΌαααΆαααΆααααα ααααααααααΆαααΆαααααΆαααααΎα§ααααααααααΎααααα Google bazel
. ααααααΆαααΆααααα ααΆαααα‘αΎα Bazel αα·αααΆααααααααΌαααΆαααααΆαααααα½αααααα’αααααΆαααααΎααΆαα
αααΎα (α αΎααα·ααΆαααααααααααααα ααΆααααααΎααααα‘αΎααα·αααΊαααααΆα αα·αα’αααα)α αααα»αβα
ααβααααα½αβαααβααΆαβαααααΎαβααΌαααΆαβααΌα
αα αααααααΆαβααβααΆαβαααααΎαβααΌαααΆαβαα½αααβααΆααααβαααα»α banal. ααΌα
ααααααΆαα·αααΆαα―αααΆαααααααα
ααΆαααααααααααααΆααα’ααααα ααααΆαααααααααΆαααα½ααα
αααα»ααα»αααΌαα ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ <ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅>
.
ααΌα
ααααααααα·αααΎα’αααα
αααααααΎαααΌαααΆαααααΆαααααα½αααααα’ααααααααΆααααααΉαααΆααΆαααΌαααΆα docker αααα½ααααα scratch
. αααααΊααΆααΌαααΆα "ααα" αα·αααΆαα―αααΆααα
αααα»αααΆαα αααααΈααΆααΆααΆαααααααααΆαααααΆαααΎαααααα - α’αΈαααΆ! - α§α§ ααα
FROM scratch
ααΌαααΆαααα
αααα·αααααΌαααΆααααααΊααΆα’αααα’αΆα
α
ααααααΆαα’αΆαααααααΆαα½αααΈαααΆαααΈααααα
αααα»αααΆ α αΎαααααΎαα½αααΆαα
ααΆααααα»α Dockerfile (ααΆααΌα
ααΆααΆαα
αααααα½αααΆαα
apt
αα·αααα‘αΎαααΈααα) α¬αα
αααααααααα
ααααααααΌαααΆα Docker ααααΌαααΆααααααΎαα‘αΎαα αααα’αα»ααααΆαα±ααα’ααααααααααααααΆαααααα»αααΌαααΆαα·ααΆαααα Docker container α αΎαααΌα
αααααααααααααααα αααΌαααΆαααΆαααααα»αα
α₯α‘αΌααααααΎαααααΌααααααΌαααΆαα’αΆαααααααΆααααααααααΌα
ααααα
α α§ααααααααααΆαααααΆααααΌα
ααΆ apt
α’αα»ααααΆαβα±ααβα’αααβααΆαβααβαααα
αα ααα»ααααβαα½αβααΆβααααΌαβααΆαβααααΆααβαα
βααΉαβαααΆαααΈαβαα
αα
α»αααααα α αΎαβαα·αβααΆαααα Windows α¬ MacOS ααα
ααΌα αααα αααα»αβααΆαβαααααΎαβα§αααααβααααΆααβαααα½αβααααβαααα»αβαααβααΉαβαααααΎαβααΌαααΆαβααΌαααααΆαβααβααα αβααΌα βαααα»αβαααβα’αΆα βααααΎβαα βααΆαβαααβαααααβαααααααα· α αΎαβααβααααΎαααΆαβαααααα·ααΈβααΆβαα½αβαααα αααα»αααΆαααααΎαααα αα Ubuntu/Debian ααααΎααΆαααααΎαααΎα (ααα½αααΆααααα αααααααααΆααααΈααααΆαα) α αΎαααΆαααααΎαααΆαα’αΆααααααααααα½αααα‘αΎααα·αα αααααα·ααΈβαααβααααΌαβααΆαβααααααβααΆβααΉαβααΆαβααβαααα ααβααααβαααβααΆαβαααα·αααΆαβα α»αβαααααβαααβαααααβαααααααα· αααβααΆααβαααααβα αΆαα·αααβαα»ααααα·ααΆαβα±ααβααΆαβα αααΎαβααΆαβαααβα’αΆα βααααΎβαα βααΆαα
αααα»αααΆαααΆαααααααα§ααααα fetchy
ααΈαααααααΆαα... ααααΎα αα·αααΆααα...ααΈααΆααΆα’ααααααα "αα", "ααΆα" - αααα αΆαααααα ααα ααααΌα] α§ααααααααααααΎαααΆαααΆααααα
ααα»α
αααααΆαααααααΆααααΆααααααααΆ ααα»αααααααα»αααααααα½ααααααααΌα API αα½αα
ααΎααααΈαααααΌααααα»αααΌαααΆααααααααΎ fetchy
(ααΎαααΌαααΆα Python ααΎαααα) α’αααααααΆααααααααΌαααααΎ CLI ααΌα
αααα fetchy dockerize python
. α’αααα’αΆα
ααΉαααααΌαααΆααα½ααααααΆααααααααααααααα·ααααα·ααΆαααααα
αα·ααααααααΌααααααΆααα fetchy
αα
αα
α»ααααααααααΎαααααα
αααααααΆαααΌαααααΆαααΎ Debian αα·α Ubuntu ααα»αααααα
α₯α‘αΌαααα α’αααα’αΆα ααααΎαααΎαααΆαα’αΆαααααααΆαα½αααααα·αααααΌαααΆαααΆααααααα (αα αααα»αααα·ααααααααΎα) α αΎαααααΆα ααα α§ααΆα ααα Python α’αΆαααααααΎ perl αααααΈααΆααΆααααΎαααΆαααα’ααααα·αα αΆαααΆα αααα‘αΎα Perl αααααα
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
ααΌαααΆα Python αααααΎααααααααΎααΆααααααααΆ fetchy dockerize python3.5
ααΆαααααααααααΉααα 35MB (αααα»αααααΆαααααα»αα
α·αααααΆαα
αααα’ααΆαα ααΆα’αΆα
ααΆααααααααΆαααΆααα»α)α ααΆααααααΆααΎαααΆααααααααααααΎααααΈαααααα 15 WW ααααααααααΈααΌαααΆαααααα·αααΆαααΆαααααΆαα
α’αααα’αΆα
ααΎαααΎαααΌαααΆαααΆααα’αααααααΆααααααΌαααααααααααα
αααααα -
ααααα·αααΎα’αααααΆαααααααααα·ααα ααααΆαααααααααΎαααααΎ - αααα»αααΉαααΈαααΆααααα»αααΆααα½α :) ααΌααααΈααα₯α‘αΌαααααααα»ααααα»αααααΎααΆαααΎααΆααα½ααααα αΌααααααα·ααΈααααααααααααα αααααααααααα αααα»α fetchy ααΌα αααααα·αα αΆαααΆα αααΆαααΆααααααΎααα α»ααααΆααααΆαααα
ααααα: www.habr.com