เชจเชพเชจเชพ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เช•เซ‡ เชœเซ‡เช“ เชชเซ‹เชคเชพเชจเชพเชฎเชพเช‚ เชตเชฟเชถเซเชตเชพเชธ เช•เชฐเซ‡ เช›เซ‡*

[เช…เชฎเซ‡เชฐเชฟเช•เชจ เชฌเชพเชณเช•เซ‹เชจเซ€ เชชเชฐเซ€เช•เชฅเชพ "เชง เชฒเชฟเชŸเชฒ เชเชจเซเชœเชฟเชจ เชงเซ‡เชŸ เช•เซเชก" เชจเซ‹ เชธเช‚เชฆเชฐเซเชญ - เช†เชถเชฐเซ‡. เชฒเซ‡เชจ]*

เชจเชพเชจเชพ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เช•เซ‡ เชœเซ‡เช“ เชชเซ‹เชคเชพเชจเชพเชฎเชพเช‚ เชตเชฟเชถเซเชตเชพเชธ เช•เชฐเซ‡ เช›เซ‡*

เชคเชฎเชพเชฐเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เชฎเชพเชŸเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชจเชพเชจเซ€ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซ€

เช…เชธเชพเชฎเชพเชจเซเชฏ เชตเชณเช—เชพเชก

เช›เซ‡เชฒเซเชฒเชพ เช•เซ‡เชŸเชฒเชพเช• เชฎเชนเชฟเชจเชพเช“เชฅเซ€, เชนเซเช‚ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœ เช•เซ‡เชŸเชฒเซ€ เชจเชพเชจเซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชนเชœเซ เชชเชฃ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชšเชพเชฒเซ€ เชฐเชนเซ€ เช›เซ‡ เชคเซ‡ เช…เช‚เช—เซ‡ เชญเซเชฐเชฎเชฟเชค เช›เซเช‚?

เชนเซเช‚ เชธเชฎเชœเซเช‚ เช›เซเช‚, เชตเชฟเชšเชพเชฐ เชตเชฟเชšเชฟเชคเซเชฐ เช›เซ‡.

เชนเซเช‚ เชตเชฟเช—เชคเซ‹ เช…เชจเซ‡ เชŸเซ‡เช•เซเชจเชฟเช•เชฒเชคเชพเช“เชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถ เช•เชฐเซเช‚ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เชนเซเช‚ เชธเชฎเชœเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เช† เชธเชฎเชธเซเชฏเชพ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชเชŸเชฒเซ€ เชฐเชธเชชเซเชฐเชฆ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชคเชฎเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชšเชฟเช‚เชคเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

เช•เชฆ เช•เซ‡เชฎ เชฎเชนเชคเซเชตเชจเซเช‚ เช›เซ‡

เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœเชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเซ‡ เช˜เชŸเชพเชกเซ€เชจเซ‡, เช…เชฎเซ‡ เชคเซเชฏเชพเช‚ เชจเชฌเชณเชพเชˆเช“เชจเซ€ เชธเซ‚เชšเชฟ เช˜เชŸเชพเชกเซ€เช เช›เซ€เช. เชตเชงเซเชฎเชพเช‚, เช…เชฎเซ‡ เชˆเชฎเซ‡เชœเซ€เชธเชจเซ‡ เช•เซเชฒเซ€เชจเชฐ เชฌเชจเชพเชตเซ€เช เช›เซ€เช, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‡ เชœ เชนเซ‹เชฏ โ€‹โ€‹เช›เซ‡.

เชคเซเชฏเชพเช‚ เชเช• เชตเชงเซ เชจเชพเชจเซ‹ เชซเชพเชฏเชฆเซ‹ เช›เซ‡ - เช›เชฌเซ€เช“ เชฅเซ‹เชกเซ€ เชเชกเชชเชฅเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เชฅเชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ, เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช† เชเชŸเชฒเซเช‚ เชฎเชนเชคเซเชตเชจเซเช‚ เชจเชฅเซ€.

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹: เชœเซ‹ เชคเชฎเซ‡ เช•เชฆ เชตเชฟเชถเซ‡ เชšเชฟเช‚เชคเชฟเชค เชนเซ‹เชต, เชคเซ‹ เช†เชฒเซเชชเชพเช‡เชจ เชชเซ‹เชคเชพเชจเซ‡ เชจเชพเชจเชพ เชฒเชพเช—เซ‡ เช›เซ‡ เช…เชจเซ‡ เชธเช‚เชญเชตเชคเชƒ เชคเชฎเชจเซ‡ เชซเชฟเชŸ เช•เชฐเชถเซ‡.

เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ เชˆเชฎเซ‡เชœเซ€เชธ

เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเซ‚เชณเชญเซ‚เชค "เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ" เช›เชฌเซ€เช“เชจเซ€ เชชเชธเช‚เชฆเช—เซ€ เช†เชชเซ‡ เช›เซ‡, เชคเซ‡เชฎเชพเช‚ เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐเซเชธ, เชถเซ‡เชฒเซเชธ เช…เชจเซ‡ เช…เชจเซเชฏ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“ เชถเชพเชฎเซ‡เชฒ เชจเชฅเซ€ เช•เซ‡ เชœเซ‡ เชคเชฎเซ‡ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏ เชชเชฐ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เชŸเซ‡เชตเชพเชฏเซ‡เชฒเชพ เช›เซ‹. เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ 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) - 179MB, เช†เชฒเซเชชเชพเช‡เชจ เช‡เชฎเซ‡เชœ (3,7-alpine) 98,6MB เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เชตเชชเชฐเชพเชคเซ€ เชฌเซ‡เช เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ เช‡เชฎเซ‡เชœ 50,9MB เช›เซ‡.

เชคเซ‡ เชจเชฟเชฐเซเชฆเซ‡เชถ เช•เชฐเชตเซ‹ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เช…เช—เชพเช‰เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เช†เชชเชฃเซ‡ เช†เช–เซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เช•เซ‹เชชเซ€ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช /usr/local/lib/python3.7/site-packages, เชœเซ‡เชฎเชพเช‚ เช†เชชเชฃเชจเซ‡ เชœเชฐเซ‚เชฐ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพเช“ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡ เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฎ เชนเชพเชฒเชจเซ€ เชชเชพเชฏเชฅเซ‹เชจ เชฌเซ‡เช เชˆเชฎเซ‡เชœเซ‹เชจเชพ เช•เชฆเชฎเชพเช‚ เชคเชซเชพเชตเชค เชฌเชฆเชฒเชพเชฏ เช›เซ‡.

เชฒเช–เชตเชพเชจเชพ เชธเชฎเชฏเซ‡, เช—เซ‚เช—เชฒ เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ เช˜เชฃเซ€ เช›เชฌเซ€เช“เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเชคเซเช‚ เชจเชฅเซ€: เชœเชพเชตเชพ เช…เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชนเชœเซ€ เชชเชฃ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชคเชฌเช•เซเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชซเช•เซเชค 2,7 เช…เชจเซ‡ 3,5 เชฎเชพเชŸเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡.

เชจเชพเชจเซ€ เช›เชฌเซ€เช“

เชจเชพเชจเซ€ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเชตเชพเชจเชพ เชฎเชพเชฐเชพ เชœเซเชธเซเชธเชพ เชชเชฐ เชชเชพเช›เชพ เชซเชฐเซ‹.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชนเซเช‚ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹ เช•เซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ เชˆเชฎเซ‡เชœเซ‹ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช—เซ‚เช—เชฒเชจเชพ เชฌเชฟเชฒเซเชก เชŸเซ‚เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ bazel. เชœเซ‹ เช•เซ‡, เชฌเซ‡เชเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เช›เชฌเซ€เช“ เชฒเช–เชตเชพเชฎเชพเช‚ เช˜เชฃเซเช‚ เช•เชพเชฎ เชฅเชฏเซเช‚ (เช…เชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชฟเช•เชชเชฃเซ‡, เชตเซเชนเซ€เชฒเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชถเซ‹เชงเชตเซเช‚ เช เชฎเชจเซ‹เชฐเช‚เชœเช• เช…เชจเซ‡ เชถเซˆเช•เซเชทเชฃเชฟเช• เช›เซ‡). เชนเซเช‚ เชจเชพเชจเซ€ เช›เชฌเซ€เช“เชจเซ€ เชฐเชšเชจเชพเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹: เช›เชฌเซ€ เชฌเชจเชพเชตเชตเชพเชจเซ€ เช•เซเชฐเชฟเชฏเชพ เช…เชคเซเชฏเช‚เชค เชธเชฐเชณ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เชฎเชพเชฎเซ‚เชฒเซ€. เชœเซ‡เชฅเซ€ เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเซ‹ เชจ เชนเซ‹เชฏ, เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚ เชฎเชพเชคเซเชฐ เชเช• เชฒเชพเช‡เชจ: ะฟั€ะพัั‚ะพ ัะพะฑั€ะฐั‚ัŒ ะพะฑั€ะฐะท ะดะปั <ะฟั€ะธะปะพะถะตะฝะธะต>.

เชคเซ‡เชฅเซ€, เชœเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชœเชพเชฃเซ‹: เช†เชตเซ€ เช…เชจเซ‹เช–เซ€ เชกเซ‹เช•เชฐ เช›เชฌเซ€ เช›เซ‡, scratch. เชธเซเช•เซเชฐเซ‡เชš เช "เช–เชพเชฒเซ€" เช›เชฌเซ€ เช›เซ‡, เชคเซ‡เชฎเชพเช‚ เช•เซ‹เชˆ เชซเชพเช‡เชฒเซ‹ เชจเชฅเซ€, เชœเซ‹ เช•เซ‡ เชคเซ‡เชจเซเช‚ เชตเชœเชจ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เช›เซ‡ - เชตเชพเชน! - 77 เชฌเชพเช‡เชŸเซเชธ.

FROM scratch

เชธเซเช•เซเชฐเซ‡เชš เช›เชฌเซ€

เชธเซเช•เซเชฐเซ‡เชš เช‡เชฎเซ‡เชœเชจเซ‹ เชตเชฟเชšเชพเชฐ เช เช›เซ‡ เช•เซ‡ เชคเชฎเซ‡ เชคเซ‡เชฎเชพเช‚ เชนเซ‹เชธเซเชŸ เชฎเชถเซ€เชจเชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆเชชเชฃ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เช•เซ‰เชชเชฟ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เช•เชพเช‚ เชคเซ‹ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชกเซ‹เช•เชฐเชซเชพเชˆเชฒเชจเซ€ เช…เช‚เชฆเชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ (เช† เชคเซ‡เชฎเชจเซ€ เชจเช•เชฒ เช•เชฐเชตเชพ เชœเซ‡เชตเซเช‚ เช›เซ‡. apt เช…เชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹), เช…เชฅเชตเชพ เชชเช›เซ€ เชœเซเชฏเชพเชฐเซ‡ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœ เชธเชพเช•เชพเชฐ เชฅเชพเชฏ. เช† เชคเชฎเชจเซ‡ เชกเซ‹เช•เชฐ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เช…เชจเซ‡ เช†เชฎ เช›เชฌเซ€เชจเชพ เช•เชฆเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชนเชตเซ‡ เช†เชชเชฃเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช† เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซ‡เชตเชพ เชนเชพเชฒเชจเชพ เชธเชพเชงเชจเซ‹ apt เชคเชฎเชจเซ‡ เชชเซ‡เช•เซ‡เชœเซ‹ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชตเชฐเซเชคเชฎเชพเชจ เชฎเชถเซ€เชจ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เช›เซ‡ เช…เชจเซ‡ เช›เซ‡เชตเชŸเซ‡, Windows เช…เชฅเชตเชพ MacOS เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเชคเชพ เชจเชฅเซ€.

เชคเซ‡เชฅเซ€ เชฎเซ‡เช‚ เชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชŸเซ‚เชฒ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เชœเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชธเซŒเชฅเซ€ เชจเชพเชจเชพ เชถเช•เซเชฏ เช•เชฆเชจเซ€ เชฌเซ‡เช เช‡เชฎเซ‡เชœ เชฌเชจเชพเชตเชถเซ‡ เช…เชจเซ‡ เช•เซ‹เชˆเชชเชฃ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชชเชฃ เชšเชฒเชพเชตเชถเซ‡. เชฎเซ‡เช‚ เช‰เชฌเซเชจเซเชŸเซ/เชกเซ‡เชฌเชฟเชฏเชจ เชชเซ‡เช•เซ‡เชœเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹, เชชเชธเช‚เชฆเช—เซ€ เช•เชฐเซ€ (เชธเซ€เชงเชพ เชœ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชเชฎเชพเช‚เชฅเซ€ เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชณเชตเชตเซเช‚) เช…เชจเซ‡ เชตเชพเชฐเช‚เชตเชพเชฐ เชคเซ‡เชฎเชจเซ€ เช…เชตเชฒเช‚เชฌเชจ เชถเซ‹เชงเซ€ เช•เชพเชขเซ€. เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เชชเซ‡เช•เซ‡เชœเชจเซเช‚ เชจเชตเซ€เชจเชคเชฎ เชธเซเชฅเชฟเชฐ เชธเช‚เชธเซเช•เชฐเชฃ เช†เชชเชฎเซ‡เชณเซ‡ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซเช‚ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเชคเซเช‚ เชนเชคเซเช‚, เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซเช‚ เชธเซเชฐเช•เซเชทเชพ เชœเซ‹เช–เชฎเซ‹ เช˜เชŸเชพเชกเซ€เชจเซ‡.

เชฎเซ‡เช‚ เชธเชพเชงเชจเชจเซเช‚ เชจเชพเชฎ เช†เชชเซเชฏเซเช‚ fetchy, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡... เชถเซ‹เชงเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฒเชพเชตเซ‡ เช›เซ‡... เชœเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ [เช…เช‚เช—เซเชฐเซ‡เชœเซ€เชฎเชพเช‚เชฅเซ€ "เช†เชตเชตเซเช‚", "เชฒเชพเชตเชตเซเช‚" - เช†เชถเชฐเซ‡. เชฒเซ‡เชจ]. เชŸเซ‚เชฒ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชเช• API เช“เชซเชฐ เช•เชฐเซ‡ เช›เซ‡.

เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช‡เชฎเซ‡เชœ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพ fetchy (เชšเชพเชฒเซ‹ เช† เชตเช–เชคเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เช‡เชฎเซ‡เชœ เชฒเชˆเช), เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เช† เชฐเซ€เชคเซ‡ CLI เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡: fetchy dockerize python. เชคเชฎเชจเซ‡ เชฒเช•เซเชทเซเชฏ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เช…เชจเซ‡ เช•เซ‹เชกเชจเชพเชฎ เชฎเชพเชŸเซ‡ เชชเซ‚เช›เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ fetchy เชนเชพเชฒเชฎเชพเช‚ เชฎเชพเชคเซเชฐ เชกเซ‡เชฌเชฟเชฏเชจ เช…เชจเซ‡ เช‰เชฌเซเชจเซเชŸเซ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชชเซ‡เช•เซ‡เชœเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡.

เชนเชตเซ‡ เชคเชฎเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เช•เชˆ เช…เชตเชฒเช‚เชฌเชจเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€ (เช…เชฎเชพเชฐเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚) เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฌเชพเช•เชพเชค เชฐเชพเช–เซ€ เชถเช•เซ‹ เช›เซ‹. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชพเชฏเชฅเซ‹เชจ เชชเชฐเซเชฒ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡, เชœเซ‹ เช•เซ‡ เชคเซ‡ เชชเชฐเซเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชธเชพเชฐเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.

เชฐเชฟเชเชฒเซเชŸ

เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เช‡เชฎเซ‡เชœ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ fetchy dockerize python3.5 เชฎเชพเชคเซเชฐ 35MB เชตเชœเชจ (เชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เช›เซ‡ เช•เซ‡ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชคเซ‡เชจเซ‡ เชตเชงเซ เชนเชณเชตเชพ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡). เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชกเชฟเชธเซเชŸเซเชฐเซ‹เชฒเซ‡เชธ เชˆเชฎเซ‡เชœเชฎเชพเช‚เชฅเซ€ เช…เชจเซเชฏ 15 เชกเชฌเซเชฒเซเชฏเซเชกเชฌเซเชฒเซเชฏเซ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เช›เซ€เช.

เชคเชฎเซ‡ เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‡เชฒเซ€ เชคเชฎเชพเชฎ เชคเชธเชตเซ€เชฐเซ‹ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚.

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ - เช…เชนเซ€เช‚.

เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเซเชตเชฟเชงเชพเช“ เช–เซ‚เชŸเซ‡ เช›เซ‡, เชคเซ‹ เชซเช•เซเชค เชเช• เชตเชฟเชจเช‚เชคเซ€ เชฌเชจเชพเชตเซ‹ - เชฎเชจเซ‡ เชฎเชฆเชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชจเช‚เชฆ เชฅเชถเซ‡ :) เช†เชจเชพเชฅเซ€ เชชเชฃ เชตเชงเซ, เชนเซเช‚ เชนเชพเชฒเชฎเชพเช‚ เช…เชจเซเชฏ เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐเซเชธเชจเซ‡ เชซเซ‡เชšเซ€เชฎเชพเช‚ เชเช•เซ€เช•เซƒเชค เช•เชฐเชตเชพ เชชเชฐ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซเช‚, เชœเซ‡เชฅเซ€ เชฎเชฒเซเชŸเชฟ-เชธเซเชŸเซ‡เชœ เชฌเชฟเชฒเซเชกเซเชธเชจเซ€ เช•เซ‹เชˆ เชœเชฐเซ‚เชฐ เชจเชฅเซ€.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹