เจ›เฉ‹เจŸเฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจœเฉ‹ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเจจ*

[เจ…เจฎเจฐเฉ€เจ•เฉ€ เจฌเฉฑเจšเจฟเจ†เจ‚ เจฆเฉ€ เจชเจฐเฉ€ เจ•เจนเจพเจฃเฉ€ "เจฆเจฟ เจฒเจฟเจŸเจฒ เจ‡เฉฐเจœเจจ เจฆเฉˆเจŸ เจ•เฉเจก" เจฆเจพ เจนเจตเจพเจฒเจพ - เจฒเจ—เจญเจ—. เจฒเฉ‡เจจ]*

เจ›เฉ‹เจŸเฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจœเฉ‹ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเจจ*

เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจœเจผเจฐเฉ‚เจฐเจคเจพเจ‚ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจ†เจช เจ›เฉ‹เจŸเฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจ เจœเจพเจฃ

เจ…เจธเจพเจงเจพเจฐเจจ เจœเจจเฉ‚เฉฐเจจ

เจชเจฟเจ›เจฒเฉ‡ เจ•เฉเจ เจฎเจนเฉ€เจจเจฟเจ†เจ‚ เจคเฉ‹เจ‚, เจฎเฉˆเจ‚ เจ‡เจธ เจ—เฉฑเจฒ เจฆเจพ เจœเจจเฉ‚เฉฐเจจ เจฐเจฟเจนเจพ เจนเจพเจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจ•เจฟเฉฐเจจเจพ เจ›เฉ‹เจŸเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจœเฉ‡ เจตเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจšเฉฑเจฒ เจฐเจนเฉ€ เจนเฉˆ?

เจฎเฉˆเจ‚ เจธเจฎเจเจฆเจพ เจนเจพเจ‚, เจตเจฟเจšเจพเจฐ เจ…เจœเฉ€เจฌ เจนเฉˆเฅค

เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจ…เจคเฉ‡ เจคเจ•เจจเฉ€เจ•เฉ€เจคเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจœเจพเจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจฎเฉˆเจ‚ เจ‡เจน เจฆเฉฑเจธเจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพ เจ•เจฟ เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฐเจจเจพ เจชเจฐเฉ‡เจธเจผเจพเจจ เจ•เจฟเจ‰เจ‚ เจ•เฉ€เจคเจพ, เจ…เจคเฉ‡ เจ‡เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจšเจฟเฉฐเจคเจค เจนเฉˆเฅค

เจ†เจ•เจพเจฐ เจ•เจฟเจ‰เจ‚ เจฎเจพเจ‡เจจเฉ‡ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ

เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจ˜เจŸเจพ เจ•เฉ‡, เจ…เจธเฉ€เจ‚ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจธเฉ€เจ‚ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจพเจซเจผ-เจธเฉเจฅเจฐเจพ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซเจผ เจ‰เจนเฉ€ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจนเจจเฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ›เฉ‹เจŸเจพ เจซเจพเจ‡เจฆเจพ เจนเฉˆ - เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจชเจฐ, เจฎเฉ‡เจฐเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจ‡เจน เจ‡เฉฐเจจเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจจเฉ‹เจŸ เจ•เจฐเฉ‹: เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ†เจ•เจพเจฐ เจฌเจพเจฐเฉ‡ เจšเจฟเฉฐเจคเจค เจนเฉ‹, เจคเจพเจ‚ เจ…เจฒเจชเจพเจˆเจจ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ›เฉ‹เจŸเจพ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจซเจฟเฉฑเจŸ เจนเฉ‹เจฃ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆเฅค

เจตเจฟเจ˜เจจ เจฐเจนเจฟเจค เจšเจฟเฉฑเจคเจฐ

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจกเจฟเจธเจŸเฉเจฐเฉ‹เจฒเฉˆเฉฑเจธ เจฌเฉเจจเจฟเจ†เจฆเฉ€ "เจกเจฟเจธเจŸเฉเจฐเฉ‹เจฒเฉˆเจธ" เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจšเฉ‹เจฃ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ, เจธเจผเฉˆเฉฑเจฒ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจ‰เจชเจฏเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ 'เจคเฉ‡ เจฆเฉ‡เจ–เจฃ เจฆเฉ‡ เจ†เจฆเฉ€ เจนเฉ‹เฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจชเฉˆเจ•เฉ‡เจœ เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ 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, เจœเจฟเจธ เจตเจฟเฉฑเจš เจจเจฟเจฐเจญเจฐเจคเจพ เจธเจผเจพเจฎเจฒ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ เจœเจฟเจธเจฆเฉ€ เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ เจ•เจฟ เจธเจพเจฐเฉ€เจ†เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเจพเจˆเจฅเจจ เจฌเฉ‡เจธ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเจพ เจ†เจ•เจพเจฐ เจตเฉฑเจ–เจฐเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, Google distroless เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจธเจตเฉ€เจฐเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ: Java เจ…เจคเฉ‡ Python เจ…เจœเฉ‡ เจตเฉ€ เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจนเจจ, เจ…เจคเฉ‡ Python เจธเจฟเจฐเจซ 2,7 เจ…เจคเฉ‡ 3,5 เจฒเจˆ เจฎเฉŒเจœเฉ‚เจฆ เจนเฉˆเฅค

เจ›เฉ‹เจŸเฉ‡ เจšเจฟเฉฑเจคเจฐ

เจ›เฉ‹เจŸเฉ‡ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจจเจพเจฒ เจฎเฉ‡เจฐเฉ‡ เจœเจจเฉ‚เฉฐเจจ เจจเฉ‚เฉฐ เจตเจพเจชเจธ.

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

เจ‡เจธ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ€เจ†เจ‚ เจ–เฉเจฆ เจฆเฉ€เจ†เจ‚ เจคเจธเจตเฉ€เจฐเจพเจ‚ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจœเจพเจฃเฉ‹: เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจตเจฟเจฒเฉฑเจ–เจฃ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจนเฉˆ, scratch. เจธเจ•เฉเจฐเฉˆเจš เจ‡เฉฑเจ• "เจ–เจพเจฒเฉ€" เจšเจฟเฉฑเจคเจฐ เจนเฉˆ, เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจซเจพเจˆเจฒเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเจจ, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจธเจฆเจพ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเจœเจผเจจ เจนเฉˆ - เจตเจพเจน! - 77 เจฌเจพเจˆเจŸ.

FROM scratch

เจธเจ•เฉเจฐเฉˆเจš เจšเจฟเฉฑเจคเจฐ

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

เจนเฉเจฃ เจธเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจ‡เจนเจจเจพเจ‚ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจฎเฉŒเจœเฉ‚เจฆเจพ เจŸเฉ‚เจฒ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ apt เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ‰เจน เจฎเฉŒเจœเฉ‚เจฆเจพ เจฎเจธเจผเฉ€เจจ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจนเจจ เจ…เจคเฉ‡, เจธเจญ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจœเจพเจ‚ เจฎเฉˆเจ•เฉ‹เจธ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ†เจชเจฃเจพ เจ–เฉเจฆ เจฆเจพ เจŸเฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจฌเจพเจนเจฐ เจจเจฟเจ•เจฒเจฟเจ† เจœเฉ‹ เจ†เจชเจฃเฉ‡ เจ†เจช เจนเฉ€ เจธเจญ เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเฉ‡ เจธเฉฐเจญเจต เจ†เจ•เจพเจฐ เจฆเจพ เจฌเฉ‡เจธ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจšเจฒเจพเจเจ—เจพ. เจฎเฉˆเจ‚ เจ‰เจฌเฉฐเจŸเฉ‚/เจกเฉ‡เจฌเฉ€เจ…เจจ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€, เจ‡เฉฑเจ• เจšเฉ‹เจฃ เจ•เฉ€เจคเฉ€ (เจธเจฟเฉฑเจงเจพ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจชเฉˆเจ•เฉ‡เจœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ) เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจฎเฉเฉœ-เจฎเฉเฉœ เจฒเฉฑเจญเจฟเจ†เฅค เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจชเฉˆเจ•เฉ‡เจœ เจฆเฉ‡ เจจเจตเฉ€เจจเจคเจฎ เจธเจฅเจฟเจฐ เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€, เจœเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจœเฉ‹เจ–เจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจเฅค

เจฎเฉˆเจ‚ เจŸเฉ‚เจฒ เจฆเจพ เจจเจพเจฎ เจฆเจฟเฉฑเจคเจพ fetchy, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน... เจฒเฉฑเจญเจฆเจพ เจ…เจคเฉ‡ เจฒเจฟเจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ... เจœเฉ‹ เจฒเฉ‹เฉœ เจนเฉˆ [เจ…เฉฐเจ—เจฐเฉ‡เจœเจผเฉ€ เจคเฉ‹เจ‚ โ€œเจฒเฉˆเจฃเจพโ€, โ€œเจฒเจพเจ“โ€ - เจฒเจ—เจญเจ—เฅค เจฒเฉ‡เจจ]เฅค เจŸเฉ‚เจฒ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉเจ†เจฐเจพ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เฉฑเจ• API เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ.

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

เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจšเฉเจฃ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจธเจพเจกเฉ‡ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš) เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจพเจนเจฐ เจ•เฉฑเจขเฉ‹เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเจพเจˆเจฅเจจ เจชเจฐเจฒ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจชเจฐเจฒ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

ะ ะตะทัƒะปัŒั‚ะฐั‚ั‹

เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเจพเจˆเจฅเจจ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† fetchy dockerize python3.5 เจธเจฟเจฐเจซ 35MB เจฆเจพ เจตเจœเจผเจจ (เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจนเฉˆ เจ•เจฟ เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจ‡เจธเจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจตเฉ€ เจนเจฒเจ•เจพ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ)เฅค เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจตเจฟเจ˜เจจ เจฐเจนเจฟเจค เจšเจฟเฉฑเจคเจฐ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉ‹เจฐ 15 เจกเจฌเจฒเจฏเฉ‚เจกเจฌเจฒเจฏเฉ‚ เจจเฉ‚เฉฐ เจธเจผเฉ‡เจต เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจนเฉ‹เจ.

เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจคเฉฑเจ• เจ‡เจ•เฉฑเจ เฉ€เจ†เจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจธเจตเฉ€เจฐเจพเจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡.

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ - เจ‡เฉฑเจฅเฉ‡.

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ—เฉเจ† เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจฌเฉ‡เจจเจคเฉ€ เจฌเจฃเจพเจ“ - เจฎเฉˆเจจเฉ‚เฉฐ เจฎเจฆเจฆ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ–เฉเจธเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€ :) เจ‡เจธ เจคเฉ‹เจ‚ เจตเฉ€ เจตเฉฑเจง, เจฎเฉˆเจ‚ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจนเฉ‹เจฐ เจชเฉˆเจ•เฉ‡เจœ เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจซเฉˆเจšเฉ€ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจจ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚, เจคเจพเจ‚ เจœเฉ‹ เจฎเจฒเจŸเฉ€-เจธเจŸเฉ‡เจœ เจฌเจฟเจฒเจกเจพเจ‚ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจพ เจชเจตเฉ‡เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹