
ΠΠ°ΠΊΠΎ Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΠΊΡΠ΅ΠΈΡΠ°ΡΠΈ ΠΌΠ°Π»Π΅ ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ΅ Π·Π° ΡΠ²ΠΎΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π΅
Π£Π½ΡΡΡΠ°Π» ΠΠ±ΡΠ΅ΡΡΠΈΠΎΠ½
ΠΠΎΡΠ»Π΅Π΄ΡΠΈΡ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΌΠ΅ΡΠ΅ΡΠΈ Π±ΠΈΠΎ ΡΠ°ΠΌ ΠΎΠΏΡΠ΅Π΄Π½ΡΡ ΡΠΈΠΌΠ΅ ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅ Π±ΠΈΡΠΈ ΠΌΠ°Π»Π°, Π° Π΄Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎΡ ΡΠ²Π΅ΠΊ ΡΠ°Π΄ΠΈ?
Π Π°Π·ΡΠΌΠ΅ΠΌ, ΠΈΠ΄Π΅ΡΠ° ΡΠ΅ ΡΡΠ΄Π½Π°.
ΠΡΠ΅ Π½Π΅Π³ΠΎ ΡΡΠΎ ΡΡΠ΅ΠΌ Ρ Π΄Π΅ΡΠ°ΡΠ΅ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠΊΠ΅ Π΄Π΅ΡΠ°ΡΠ΅, ΠΆΠ΅Π»Π΅ΠΎ Π±ΠΈΡ Π΄Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΈΠΌ Π·Π°ΡΡΠΎ ΠΌΠ΅ ΡΠ΅ ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ»ΠΈΠΊΠΎ ΠΌΡΡΠΈΠΎ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠΈΡΠ΅ Π²Π°Ρ.
ΠΠ°ΡΡΠΎ ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Π° Π²Π°ΠΆΠ½Π°
Π‘ΠΌΠ°ΡΠΈΠ²Π°ΡΠ΅ΠΌ ΡΠ°Π΄ΡΠΆΠ°ΡΠ° ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ΅, ΡΠΈΠΌΠ΅ ΡΠΌΠ°ΡΡΡΠ΅ΠΌΠΎ Π»ΠΈΡΡΡ ΡΠ°ΡΠΈΠ²ΠΎΡΡΠΈ. ΠΠΎΡΠ΅Π΄ ΡΠΎΠ³Π°, ΡΠΈΠ½ΠΈΠΌΠΎ ΡΠ»ΠΈΠΊΠ΅ ΡΠΈΡΡΠΈΡΠΈΠΌ, ΡΠ΅Ρ ΡΠ°Π΄ΡΠΆΠ΅ ΡΠ°ΠΌΠΎ ΠΎΠ½ΠΎ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°.
ΠΠΎΡΡΠΎΡΠΈ ΡΠΎΡ ΡΠ΅Π΄Π½Π° ΠΌΠ°Π»Π° ΠΏΡΠ΅Π΄Π½ΠΎΡΡ - ΡΠ»ΠΈΠΊΠ΅ ΡΠ΅ ΠΏΡΠ΅ΡΠ·ΠΈΠΌΠ°ΡΡ ΠΌΠ°Π»ΠΎ Π±ΡΠΆΠ΅, Π°Π»ΠΈ, ΠΏΠΎ ΠΌΠΎΠΌ ΠΌΠΈΡΡΠ΅ΡΡ, ΡΠΎ Π½ΠΈΡΠ΅ ΡΠΎΠ»ΠΈΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ.
ΠΠΌΠ°ΡΡΠ΅ Π½Π° ΡΠΌΡ: ΠΠΊΠΎ ΡΡΠ΅ Π·Π°Π±ΡΠΈΠ½ΡΡΠΈ Π·Π±ΠΎΠ³ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅, ΡΠ°ΠΌΠΈ ΠΠ»ΠΏΠΈΠ½Π΅ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ ΡΡ ΠΌΠ°Π»ΠΈ ΠΈ Π²Π΅ΡΠΎΠ²Π°ΡΠ½ΠΎ ΡΠ΅ Π²Π°ΠΌ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°ΡΠΈ.
Π‘Π»ΠΈΠΊΠ΅ Π±Π΅Π· Π΄ΠΈΡΡΡΠΎΠ»Π΅
Π½ΡΠ΄ΠΈ ΠΈΠ·Π±ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ
βΠ΄ΠΈΡΡΡΠΎΠ»Π΅ΡΡβ ΡΠ»ΠΈΠΊΠ°, Π½Π΅ ΡΠ°Π΄ΡΠΆΠ΅ ΠΌΠ΅Π½Π°ΡΠ΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΠΊΠΎΡΠΊΠ΅ ΠΈ Π΄ΡΡΠ³Π΅ ΡΡΠ»ΡΠΆΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ ΠΊΠΎΡΠ΅ ΡΡΠ΅ Π½Π°Π²ΠΈΠΊΠ»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΡ Π»ΠΈΠ½ΠΈΡΠΈ. ΠΠ°ΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ, ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΌΠ΅Π½Π°ΡΠ΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊΠ°ΠΎ ΡΡΠΎ ΡΡ pip ΠΈ apt Π½Π΅ΡΠ΅ ΡΠ°Π΄ΠΈΡΠΈ:
FROM gcr.io/distroless/python3
RUN pip3 install numpyΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ ΠΠΈΡΡ ΠΎΠ½ 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, ΠΊΠΎΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π΄ΡΠΆΠΈ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΡΠ΅ Π½Π°ΠΌ Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π½Π΅. ΠΠ°ΠΊΠΎ ΡΠ΅ ΡΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ°Π·Π»ΠΈΠΊΠ° Ρ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΈ ΡΠ²ΠΈΡ
ΠΏΠΎΡΡΠΎΡΠ΅ΡΠΈΡ
ΠΠΈΡΡ
ΠΎΠ½ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ
ΡΠ»ΠΈΠΊΠ° Π²Π°ΡΠΈΡΠ°.
Π£ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠΈΡΠ°ΡΠ° ΠΎΠ²ΠΎΠ³ ΡΠ΅ΠΊΡΡΠ°, ΠΠΎΠΎΠ³Π»Π΅ Π΄ΠΈΡΡΡΠΎΠ»Π΅ΡΡ Π½Π΅ ΠΏΠΎΠ΄ΡΠΆΠ°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΠΊΠ°: ΠΠ°Π²Π° ΠΈ ΠΠΈΡΡ ΠΎΠ½ ΡΡ ΡΠΎΡ ΡΠ²Π΅ΠΊ Ρ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎΡ ΡΠ°Π·ΠΈ, Π° ΠΠΈΡΡ ΠΎΠ½ ΠΏΠΎΡΡΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π·Π° 2,7 ΠΈ 3,5.
ΠΠ°Π»Π΅ ΡΠ»ΠΈΠΊΠ΅
ΠΠ° ΡΠ΅ ββΠ²ΡΠ°ΡΠΈΠΌ Π½Π° ΠΌΠΎΡΡ ΠΎΠΏΡΠ΅ΡΠΈΡΡ ΡΡΠ²Π°ΡΠ°ΡΠ΅ΠΌ ΠΌΠ°Π»ΠΈΡ ΡΠ»ΠΈΠΊΠ°.
ΠΠ΅Π½Π΅ΡΠ°Π»Π½ΠΎ, ΠΆΠ΅Π»Π΅ΠΎ ΡΠ°ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠΎ ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡ ΡΠ»ΠΈΠΊΠ΅ Π±Π΅Π· Π΄ΠΈΡΡΡΠΎΠ»Π΅. ΠΡΠΎΡΠ΅ΠΊΠ°Ρ Π±Π΅Π· Π΄ΠΈΡΡΡΠΎΠ»Π΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΠΎΠΎΠ³Π»Π΅-ΠΎΠ² Π°Π»Π°Ρ Π·Π° ΠΏΡΠ°Π²ΡΠ΅ΡΠ΅ bazel. ΠΠ΅ΡΡΡΠΈΠΌ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΠ°Π·Π΅Π»Π° ΠΈ ΠΏΠΈΡΠ°ΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈΡ
ΡΠ»ΠΈΠΊΠ° Π·Π°Ρ
ΡΠ΅Π²Π°Π»ΠΎ ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π° (ΠΈ Π΄Π° Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΊΡΠ΅Π½, ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΌΠΈΡΡΠ°ΡΠ΅ ΡΠΎΡΠΊΠ° ΡΠ΅ Π·Π°Π±Π°Π²Π½ΠΎ ΠΈ ΠΏΠΎΡΡΠ½ΠΎ). ΠΠ΅Π»Π΅ΠΎ ΡΠ°ΠΌ Π΄Π° ΠΏΠΎΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΌΠ°ΡΠΈΡ
ΡΠ»ΠΈΠΊΠ°: ΡΠΈΠ½ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ° ΡΠ»ΠΈΠΊΠ΅ ΡΡΠ΅Π±Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΊΡΠ°ΡΡΠ΅ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½, Π±Π°Π½Π°Π»Π°Π½. Π’Π°ΠΊΠΎ Π΄Π° Π½Π΅ΠΌΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½ΠΈΡ
Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π·Π° Π²Π°Ρ, ΡΠ°ΠΌΠΎ ΡΠ΅Π΄Π°Π½ ΡΠ΅Π΄ Ρ ΠΊΠΎΠ½Π·ΠΎΠ»ΠΈ: ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ <ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅>.
ΠΠ°ΠΊΠ»Π΅, Π°ΠΊΠΎ ΠΆΠ΅Π»ΠΈΡΠ΅ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½Π΅ ΡΠ»ΠΈΠΊΠ΅, Π·Π½Π°ΡΡΠ΅: ΠΏΠΎΡΡΠΎΡΠΈ ΡΠ°ΠΊΠΎ ΡΠ΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° Π΄ΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ°, scratch. Π‘ΡΡΠ°ΡΡΡ
ΡΠ΅ βΠΏΡΠ°Π·Π½Π°β ΡΠ»ΠΈΠΊΠ°, Ρ ΡΠΎΡ Π½Π΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, ΠΈΠ°ΠΊΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΎ ΡΠ΅ΡΠΊΠ° - Π²Π°Ρ! - 77 Π±Π°ΡΡΠΎΠ²Π°.
FROM scratchΠ‘ΡΡΠ°ΡΡΡ ΠΈΠΌΠ°Π³Π΅
ΠΠ΄Π΅ΡΠ° ΡΡΡΠ°ΡΡΡ
ΡΠ»ΠΈΠΊΠ΅ ΡΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°ΡΠΈ ΡΠ²Π΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΡΠ° Ρ
ΠΎΡΡ ΠΌΠ°ΡΠΈΠ½Π΅ Ρ ΡΡ ΠΈ ΠΈΠ»ΠΈ ΠΈΡ
ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ ΡΠ½ΡΡΠ°Ρ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅-Π° (ΠΎΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΎ Π΄Π° ΠΈΡ
ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ Ρ apt ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ ΠΎΠ΄ Π½ΡΠ»Π΅), ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ½ΠΈΡΠ΅ ΠΊΠ°Π΄Π° ΡΠ΅ ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΡΡΠ΅. ΠΠ²ΠΎ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π΄Π° Ρ ΠΏΠΎΡΠΏΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ΅ΡΠ΅ ΡΠ°Π΄ΡΠΆΠ°Ρ ΠΠΎΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΈ ΡΠ°ΠΊΠΎ ΠΏΠΎΡΠΏΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ΅ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠ»ΠΈΠΊΠ΅.
Π‘Π°Π΄Π° ΠΌΠΎΡΠ°ΠΌΠΎ Π½Π΅ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΡΠΈΠΊΡΠΏΠΈΠΌΠΎ ΠΎΠ²Π΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΡΠ΅ΡΠΈ Π°Π»Π°ΡΠΈ ΠΏΠΎΠΏΡΡ apt ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π°ΡΡ ΠΏΡΠ΅ΡΠ·ΠΈΠΌΠ°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π°Π»ΠΈ ΡΡ ΠΎΠ½ΠΈ Π²Π΅Π·Π°Π½ΠΈ Π·Π° ΡΡΠ΅Π½ΡΡΠ½Ρ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ, Π½Π° ΠΊΡΠ°ΡΡ ΠΊΡΠ°ΡΠ΅Π²Π°, Π½Π΅ ΠΏΠΎΠ΄ΡΠΆΠ°Π²Π°ΡΡ ΠΠΈΠ½Π΄ΠΎΠ²Ρ ΠΈΠ»ΠΈ ΠΠ°ΡΠΠ‘.
ΠΠ°ΡΠΎ ΡΠ°ΠΌ ΠΊΡΠ΅Π½ΡΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈ Π°Π»Π°Ρ ΠΊΠΎΡΠΈ Π±ΠΈ Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΠΎ ΠΎΡΠ½ΠΎΠ²Π½Ρ ΡΠ»ΠΈΠΊΡ Π½Π°ΡΠΌΠ°ΡΠ΅ ΠΌΠΎΠ³ΡΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅ ΠΈ ΡΠ°ΠΊΠΎΡΠ΅ ΠΏΠΎΠΊΡΠ΅Π½ΡΠΎ Π±ΠΈΠ»ΠΎ ΠΊΠΎΡΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡ. ΠΠΎΡΠΈΡΡΠΈΠΎ ΡΠ°ΠΌ Π£Π±ΡΠ½ΡΡ/ΠΠ΅Π±ΠΈΠ°Π½ ΠΏΠ°ΠΊΠ΅ΡΠ΅, Π½Π°ΠΏΡΠ°Π²ΠΈΠΎ ΡΠ΅Π»Π΅ΠΊΡΠΈΡΡ (ΠΏΡΠ΅ΡΠ·ΠΈΠΌΠ°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ· ΡΠΏΡΠ΅ΠΌΠΈΡΡΠ°) ΠΈ ΡΠ΅ΠΊΡΡΠ·ΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠ½Π°ΡΠ°ΠΎ ΡΠΈΡ ΠΎΠ²Π΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌ ΡΠ΅ ΡΡΠ΅Π±Π°Π»ΠΎ Π΄Π° Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΠΏΡΠ΅ΡΠ·ΠΌΠ΅ Π½Π°ΡΠ½ΠΎΠ²ΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»Π½Ρ Π²Π΅ΡΠ·ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΡΡΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½Π΅ ΡΠΈΠ·ΠΈΠΊΠ΅ ΡΡΠΎ ΡΠ΅ Π²ΠΈΡΠ΅ ΠΌΠΎΠ³ΡΡΠ΅.
ΠΠ°ΠΎ ΡΠ°ΠΌ ΠΈΠΌΠ΅ Π°Π»Π°ΡΡ fetchy, ΡΠ΅Ρ ΠΎΠ½... Π½Π°ΡΠ΅ ΠΈ Π΄ΠΎΠ½Π΅ΡΠ΅... ΡΡΠ° ΡΡΠ΅Π±Π° [ΠΈΠ· Π΅Π½Π³Π»Π΅ΡΠΊΠΎΠ³ βΠ΄ΠΎΠ½Π΅ΡΠΈβ, βΠ΄ΠΎΠ½Π΅ΡΠΈβ - ΠΏΡΠΈΠ±Π». Π»Π°Π½Π΅]. ΠΠ»Π°Ρ ΡΠ°Π΄ΠΈ ΠΏΡΠ΅ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ Π»ΠΈΠ½ΠΈΡΠ΅, Π°Π»ΠΈ Ρ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½ΡΠ΄ΠΈ ΠΠΠ.
ΠΠ° Π±ΠΈΡΡΠ΅ ΡΠ°ΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ»ΠΈΠΊΡ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ fetchy (ΡΠ·ΠΌΠΈΠΌΠΎ ΠΠΈΡΡ
ΠΎΠ½ ΡΠ»ΠΈΠΊΡ ΠΎΠ²ΠΎΠ³ ΠΏΡΡΠ°), ΡΠ°ΠΌΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π¦ΠΠ ΠΎΠ²Π°ΠΊΠΎ: fetchy dockerize python. ΠΠ΄ Π²Π°Ρ ΡΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ΄Π° ΡΡΠ°ΠΆΠΈΡΠΈ ΡΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠ΄Π½ΠΎ ΠΈΠΌΠ΅ ΡΠ΅Ρ fetchy ΡΡΠ΅Π½ΡΡΠ½ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°ΠΌΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π°Π½Π΅ Π½Π° ΠΠ΅Π±ΠΈΠ°Π½-Ρ ΠΈ Π£Π±ΡΠ½ΡΡ-Ρ.
Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π°Π±ΡΠ°ΡΠΈ ΠΊΠΎΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΡΠΎΠΏΡΡΠ΅ Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π½Π΅ (Ρ Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ) ΠΈ ΠΈΡΠΊΡΡΡΠΈΡΠΈ ΠΈΡ . ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠΈΡΡ ΠΎΠ½ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΠΠ΅ΡΠ»-Π°, ΠΈΠ°ΠΊΠΎ ΡΠ°Π΄ΠΈ Π΄ΠΎΠ±ΡΠΎ Π±Π΅Π· ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΎΠ³ ΠΠ΅ΡΠ»Π°.
ΠΠ°Π»Π°Π·ΠΈ
ΠΠΈΡΡ
ΠΎΠ½ ΡΠ»ΠΈΠΊΠ° ΠΊΡΠ΅ΠΈΡΠ°Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ fetchy dockerize python3.5 ΡΠ΅ΠΆΠ°ΠΊ ΡΠ΅ ΡΠ°ΠΌΠΎ 35ΠΠ (Π²ΠΈΡΠ΅ ΡΠ°ΠΌ Π½Π΅Π³ΠΎ ΡΠΈΠ³ΡΡΠ°Π½ Π΄Π° Ρ Π±ΡΠ΄ΡΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΎΡ Π»Π°ΠΊΡΠΈ). ΠΡΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ Π΄Π° ΡΠΌΠΎ ΡΡΠΏΠ΅Π»ΠΈ Π΄Π° ΠΎΠ±ΡΠΈΡΠ΅ΠΌΠΎ ΡΠΎΡ 15 ΠΠ ΡΠ° ΡΠ»ΠΈΠΊΠ΅ Π±Π΅Π· Π΄ΠΈΡΡΡΠΎΠ»Π°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΠΈ ΡΠ²Π΅ Π΄ΠΎ ΡΠ°Π΄Π° ΠΏΡΠΈΠΊΡΠΏΡΠ΅Π½Π΅ ΡΠ»ΠΈΠΊΠ΅ .
ΠΡΠΎΡΠ΅ΠΊΠ°Ρ - .
ΠΠΊΠΎ Π²Π°ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡΠ΅, ΡΠ°ΠΌΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°Ρ ΡΠ΅Π² - ΡΠ°Π΄ΠΎ ΡΡ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡΠΈ :) Π¨ΡΠ°Π²ΠΈΡΠ΅, ΡΡΠ΅Π½ΡΡΠ½ΠΎ ΡΠ°Π΄ΠΈΠΌ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅Π½Π°ΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ ΡΠ΅ΡΡΡ ΠΈ, ΡΠ°ΠΊΠΎ Π΄Π° Π½Π΅ΠΌΠ° ΠΏΠΎΡΡΠ΅Π±Π΅ Π·Π° Π²ΠΈΡΠ΅ΡΡΠ΅ΠΏΠ΅Π½ΠΈΠΌ Π±ΡΠΈΠ»Π΄ΠΎΠ²ΠΈΠΌΠ°.
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ Π°Π±Ρ.ΡΠΎΠΌ
