рдЫреЛрдЯреА рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ рдЬреЛ рдЦреБрдж рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреА рдереАрдВ*

[рдЕрдореЗрд░рд┐рдХреА рдмрдЪреНрдЪреЛрдВ рдХреА рдкрд░реА рдХрдерд╛ "рдж рд▓рд┐рдЯрд┐рд▓ рдЗрдВрдЬрди рджреИрдЯ рдХреБрдб" рдХрд╛ рд╕рдВрджрд░реНрдн - рд▓рдЧрднрдЧред рдЧрд▓реА]*

рдЫреЛрдЯреА рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ рдЬреЛ рдЦреБрдж рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреА рдереАрдВ*

рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЫреЛрдЯреА рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ

рдЕрд╕рд╛рдорд╛рдиреНрдп рдЬреБрдиреВрди

рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рд╕реЗ, рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХреЛ рд▓реЗрдХрд░ рдЙрддреНрд╕реБрдХ рд╣реВрдБ рдХрд┐ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХрд┐рддрдиреА рдЫреЛрдЯреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдлрд┐рд░ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реИ?

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЕрдЬреАрдм рд╣реИред

рд╡рд┐рд╡рд░рдг рдФрд░ рддрдХрдиреАрдХреА рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдиреЗ рдореБрдЭреЗ рдЗрддрдирд╛ рдкрд░реЗрд╢рд╛рди рдХреНрдпреЛрдВ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдХреИрд╕реЗ рдЪрд┐рдВрддрд┐рдд рдХрд░рддреА рд╣реИред

рдЖрдХрд╛рд░ рдХреНрдпреЛрдВ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ

рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрдо рдХрд░рдХреЗ, рд╣рдо рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдо рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рдХреЗрд╡рд▓ рд╡рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рд╕рд╛ рдлрд╛рдпрджрд╛ рд╣реИ - рдЫрд╡рд┐рдпрд╛рдВ рдереЛрдбрд╝реА рддреЗрдЬреА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рдпрджрд┐ рдЖрдк рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ, рддреЛ рдЕрд▓реНрдкрд╛рдЗрди рджрд┐рдЦрдиреЗ рдореЗрдВ рдЫреЛрдЯрд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ред

рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдЫрд╡рд┐рдпрд╛рдВ

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдмреБрдирд┐рдпрд╛рджреА "рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕" рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░, рд╢реЗрд▓ рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рджреЗрдЦрдиреЗ рдХреЗ рдЖрджреА рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬреИрд╕реЗ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ 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/

рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдЕрд╕реЗрдВрдмрд▓реА

рдкрд░рд┐рдгрд╛рдо 130MB рдЖрдХрд╛рд░ рдХреА рдПрдХ рдЫрд╡рд┐ рд╣реИред рдЗрддрдирд╛ рдмреБрд░рд╛ рднреА рдирд╣реАрдВ! рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд╛рдпрдерди рдЫрд╡рд┐ рдХрд╛ рд╡рдЬрди 929MB рд╣реИ, рдФрд░ "рдкрддрд▓реА" рд╡рд╛рд▓реА (3,7-slim) - 179рдПрдордмреА, рдЕрд▓реНрдкрд╛рдЗрди рдЫрд╡рд┐ (3,7-alpine) 98,6рдПрдордмреА рд╣реИ, рдЬрдмрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдмреЗрд╕ рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдЫрд╡рд┐ 50,9рдПрдордмреА рд╣реИред

рдпрд╣ рдмрддрд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо рдПрдХ рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ /usr/local/lib/python3.7/site-packages, рдЬрд┐рд╕рдореЗрдВ рдРрд╕реА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕рднреА рдореМрдЬреВрджрд╛ рдкрд╛рдпрдерди рдмреЗрд╕ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рдЕрдВрддрд░ рднрд┐рдиреНрди рд╣реИред

рд▓реЗрдЦрди рдХреЗ рд╕рдордп, Google рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдЬрд╛рд╡рд╛ рдФрд░ рдкрд╛рдпрдерди рдЕрднреА рднреА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЪрд░рдг рдореЗрдВ рд╣реИрдВ, рдФрд░ рдкрд╛рдпрдерди рдХреЗрд╡рд▓ 2,7 рдФрд░ 3,5 рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИред

рдЫреЛрдЯреЗ рдЪрд┐рддреНрд░

рдЫреЛрдЯреА рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЬреБрдиреВрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ Google рдХреЗ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ bazel. рд╣рд╛рд▓рд╛рдБрдХрд┐, рдмреЗрдЬрд╝реЗрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдЫрд╡рд┐рдпрд╛рдВ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрд╛рдо рд▓рдЧрд╛ (рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╣реЗрдВ рддреЛ, рдкрд╣рд┐рдпреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдордЬреЗрджрд╛рд░ рдФрд░ рд╢реИрдХреНрд╖рд┐рдХ рд╣реИ)ред рдореИрдВ рдЫреЛрдЯреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреБрдЪреНрдЫ. рддрд╛рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рди рд╣реЛрдВ, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐: ╨┐╤А╨╛╤Б╤В╨╛ ╤Б╨╛╨▒╤А╨░╤В╤М ╨╛╨▒╤А╨░╨╖ ╨┤╨╗╤П <╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╨╡>.

рддреЛ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЦреБрдж рдХреА рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЬрд╛рди рд▓реЗрдВ: рдРрд╕реА рдПрдХ рдЕрдиреВрдареА рдбреЙрдХрд░ рдЫрд╡рд┐ рд╣реИ, scratch. рд╕реНрдХреНрд░реИрдЪ рдПрдХ "рдЦрд╛рд▓реА" рдЫрд╡рд┐ рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕рдХрд╛ рд╡рдЬрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИ - рд╡рд╛рд╣! - 77 рдмрд╛рдЗрдЯреНрд╕.

FROM scratch

рдЫрд╡рд┐ рдЦрд░реЛрдВрдЪреЗрдВ

рд╕реНрдХреНрд░реИрдЪ рдЗрдореЗрдЬ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╣реЛрд╕реНрдЯ рдорд╢реАрди рд╕реЗ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЗрд╕рдореЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╛ рддреЛ рдЙрдиреНрд╣реЗрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реИ apt рдФрд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ), рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЬрдм рдбреЙрдХрд░ рдЫрд╡рд┐ рднреМрддрд┐рдХ рд╣реЛ рдЬрд╛рдПред рдпрд╣ рдЖрдкрдХреЛ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЫрд╡рд┐ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдм рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдореМрдЬреВрджрд╛ рдЙрдкрдХрд░рдг рдЬреИрд╕реЗ apt рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд░реНрддрдорд╛рди рдорд╢реАрди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░, рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡рд┐рдВрдбреЛрдЬ рдпрд╛ рдореИрдХрдУрдПрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЯреВрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд╢реНрдЪрдп рдХрд┐рдпрд╛ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рд╕рдВрднрд╡ рдЖрдХрд╛рд░ рдХреА рдПрдХ рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдЙрдмрдВрдЯреВ/рдбреЗрдмрд┐рдпрди рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдПрдХ рдЪрдпрди рдХрд┐рдпрд╛ (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реАрдзреЗ рдкреИрдХреЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛) рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдкрд╛рдИрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкреИрдХреЗрдЬ рдХреЗ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдореЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдореИрдВрдиреЗ рдЯреВрд▓ рдХрд╛ рдирд╛рдо рд░рдЦрд╛ fetchy, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣... рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рд▓рд╛рддрд╛ рд╣реИ... рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ [рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╕реЗ "рд▓рд╛рдУ", "рд▓рд╛рдУ" - рд▓рдЧрднрдЧред рдЧрд▓реА]. рдЯреВрд▓ рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдПрдХ рдПрдкреАрдЖрдИ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ fetchy (рдЖрдЗрдП рдЗрд╕ рдмрд╛рд░ рдПрдХ рдкрд╛рдпрдерди рдЫрд╡рд┐ рд▓реЗрдВ), рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕ рддрд░рд╣ рд╕реАрдПрд▓рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: fetchy dockerize python. рдЖрдкрд╕реЗ рд▓рдХреНрд╖реНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХреЛрдбрдиреЗрдо рдкреВрдЫрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ fetchy рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдбреЗрдмрд┐рдпрди рдФрд░ рдЙрдмрдВрдЯреВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдЖрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд╣рдорд╛рд░реЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдкрд░реНрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдкрд░реНрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рднреА рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖

рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдЫрд╡рд┐ рдмрдирд╛рдИ рдЧрдИ fetchy dockerize python3.5 рдЗрд╕рдХрд╛ рд╡рдЬрди рдХреЗрд╡рд▓ 35 рдПрдордмреА рд╣реИ (рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдФрд░ рднреА рд╣рд▓реНрдХрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдо рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдЫрд╡рд┐ рд╕реЗ рдПрдХ рдФрд░ 15 WW рд╣рдЯрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред

рдЖрдк рдЕрдм рддрдХ рдПрдХрддреНрд░ рдХреА рдЧрдИ рд╕рднреА рддрд╕реНрд╡реАрд░реЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ.

рдкрд░рд┐рдпреЛрдЬрдирд╛ - рдпрд╣рд╛рдВ.

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдмрд╕ рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдВ - рдореБрдЭреЗ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА :) рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдлрд╝реЗрдЪреА рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддрд╛рдХрд┐ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдмрд┐рд▓реНрдб рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ