рд╕рд╛рдиреЛ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рдЬрд╕рд▓реЗ рдЖрдлреИрд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдпреЛ *

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

рд╕рд╛рдиреЛ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рдЬрд╕рд▓реЗ рдЖрдлреИрд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдпреЛ *

рддрдкрд╛рдЗрдБрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реБ рдХреЛ рд▓рд╛рдЧреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рд╛рдиреЛ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реБ рдХрд╕рд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ

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

рд╡рд┐рдЧрддрдХрд╛ рдХреЗрд╣реА рдорд╣рд┐рдирд╛рд╣рд░реВрджреЗрдЦрд┐, рдо рдбрдХрд░ рдЫрд╡рд┐ рдХрддреНрддрд┐рдХреЛ рд╕рд╛рдиреЛ рд╣реБрди рд╕рдХреНрдЫ рд░ рдЕрдЭреИ рдкрдирд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреЗрд░ рдкрд╛рдЧрд▓ рднрдПрдХреЛ рдЫреБ?

рдореИрд▓реЗ рдмреБрдЭреЗрдВ, рдХрд▓реНрдкрдирд╛ рдЕрдиреМрдареЛ рдЫред

рдо рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд░ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХрддрд╛рд╣рд░реВрдорд╛ рдЬрд╛рдиреБ рдЕрдШрд┐, рдо рдпреЛ рд╕рдорд╕реНрдпрд╛рд▓реЗ рдорд▓рд╛рдИ рдХрд┐рди рдзреЗрд░реИ рд╕рддрд╛рдпреЛ, рд░ рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд╕рд░реА рдЪрд┐рдиреНрддрд╛ рдЧрд░реНрдЫ рднрдиреЗрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рдХрд┐рди рдЖрдХрд╛рд░ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ

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

рддреНрдпрд╣рд╛рдБ рдЕрд░реНрдХреЛ рд╕рд╛рдиреЛ рдлрд╛рдЗрджрд╛ рдЫ - рдЫрд╡рд┐рд╣рд░реВ рдЕрд▓рд┐ рдЫрд┐рдЯреЛ рдбрд╛рдЙрдирд▓реЛрдб рд╣реБрдиреНрдЫрдиреН, рддрд░, рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рддреНрдпрддрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрдиред

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

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

рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдзрд╛рд░рднреВрдд "рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕" рдЫрд╡рд┐рд╣рд░реВрдХреЛ рдЪрдпрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд╣рд░реВ, рд╢реЗрд▓рд╣рд░реВ рд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджреИрдирдиреН рдЬреБрди рддрдкрд╛рдЗрдБ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рд╣реЗрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣рдиреБрднрдПрдХреЛ рдЫред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд╣рд░реВ рдЬрд╕реНрддреИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН pip ╨╕ apt рдХрд╛рдо рдЧрд░реНрджреИрди:

FROM gcr.io/distroless/python3
RUN  pip3 install numpy

рдкрд╛рдЗрдерди рей рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрдХрд░рдлрд╛рдЗрд▓

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 рдЖрдХрд╛рд░рдХреЛ рдЫрд╡рд┐ рд╣реЛред рдзреЗрд░реИ рдирд░рд╛рдореНрд░реЛ рдЫреИрди! рддреБрд▓рдирд╛рдХреЛ рд▓рд╛рдЧрд┐: рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрд╛рдЗрдерди рдЫрд╡рд┐рдХреЛ рддреМрд▓ репреиреп рдПрдордмреА рд╣реБрдиреНрдЫ, рд░ "рдкрд╛рддрд▓реЛ" рдПрдЙрдЯрд╛ (3,7-slim) - 179MB, рдЕрд▓реНрдкрд╛рдЗрди рдЫрд╡рд┐ (3,7-alpine) 98,6MB рд╣реЛ, рдЬрдмрдХрд┐ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдмреЗрд╕ рдбрд┐рд╕реНрдЯреНрд░реЛрд▓реЗрд╕ рдЫрд╡рд┐ 50,9MB рд╣реЛред

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

рд▓реЗрдЦрдирдХреЛ рд╕рдордпрдорд╛, Google distroless рд▓реЗ рдзреЗрд░реИ рдЫрд╡рд┐рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди: Java рд░ Python рдЕрдЭреИ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЪрд░рдгрдорд╛ рдЫрдиреН, рд░ Python 2,7 рд░ 3,5 рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдЕрд╡рд╕реНрдерд┐рдд рдЫред

рд╕рд╛рдирд╛ рддрд╕реНрдмрд┐рд░рд╣рд░реВ

рд╕рд╛рдиреЛ рдЫрд╡рд┐рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдореЗрд░реЛ рдЬреБрдиреВрдирдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реНред

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

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

FROM scratch

рд╕реНрдХреНрд░реНрдпрд╛рдЪ рдЫрд╡рд┐

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

рдЕрдм рд╣рд╛рдореАрд▓реЗ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ рдпреА рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╡рд┐рджреНрдпрдорд╛рди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЬрд╕реНрддреИ apt рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рддрд░ рддрд┐рдиреАрд╣рд░реВ рд╣рд╛рд▓рдХреЛ рдореЗрд╕рд┐рдирдорд╛ рдмрд╛рдБрдзрд┐рдПрдХрд╛ рдЫрдиреН рд░, рд╕рдмреИ рдкрдЫрд┐, Windows рд╡рд╛ MacOS рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред

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

рдореИрд▓реЗ рдЙрдкрдХрд░рдгрдХреЛ рдирд╛рдо рджрд┐рдПрдБ fetchy, рдХрд┐рдирдХрд┐ рдЙрд╕рд▓реЗ... рдЦреЛрдЬреНрдЫ рд░ рд▓реНрдпрд╛рдЙрдБрдЫ ... рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ [рдЕрдВрдЧреНрд░реЗрдЬреАрдмрд╛рдЯ "рдлреЗрдЪ", "рд▓рд╛рдЙрдиреБрд╣реЛрд╕реН" - рд▓рдЧрднрдЧред рд▓реЗрди]ред рдЙрдкрдХрд░рдгрд▓реЗ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрд░ рдПрдХреИ рд╕рдордпрдорд╛ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

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

рдЕрдм рддрдкрд╛рдЗрдБ рдХреБрди рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ (рд╣рд╛рдореНрд░реЛ рд╕рдиреНрджрд░реНрднрдорд╛) рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, Python perl рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ, рдпрджреНрдпрдкрд┐ рдпреЛ Perl рд╕реНрдерд╛рдкрдирд╛ рдмрд┐рдирд╛ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реНрджрдЫред

╨а╨╡╨╖╤Г╨╗╤М╤В╨░╤В╤Л

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

рддрдкрд╛рдИрдВрд▓реЗ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдЫрд╡рд┐рд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ.

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

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди