āĻ•ā§āĻˇā§āĻĻā§āĻ° āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¯āĻž āĻ¨āĻŋāĻœā§‡āĻĻā§‡āĻ°āĻ•ā§‡ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛*

[āĻ†āĻŽā§‡āĻ°āĻŋāĻ•āĻžāĻ¨ āĻļāĻŋāĻļā§āĻĻā§‡āĻ° āĻ°ā§‚āĻĒāĻ•āĻĨāĻžāĻ° āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ "āĻĻā§āĻ¯ āĻ˛āĻŋāĻŸāĻ˛ āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻĻā§āĻ¯āĻžāĻŸ āĻ•ā§āĻĄ" - āĻĒā§āĻ°āĻžāĻ¯āĻŧāĨ¤ āĻ—āĻ˛āĻŋ]*

āĻ•ā§āĻˇā§āĻĻā§āĻ° āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¯āĻž āĻ¨āĻŋāĻœā§‡āĻĻā§‡āĻ°āĻ•ā§‡ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛*

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ›ā§‹āĻŸ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ

āĻ…āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ†āĻŦā§‡āĻļ

āĻ—āĻ¤ āĻ•āĻ¯āĻŧā§‡āĻ• āĻŽāĻžāĻ¸ āĻ§āĻ°ā§‡, āĻ†āĻŽāĻŋ āĻāĻ•āĻŸāĻŋ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ•āĻ¤āĻŸāĻž āĻ›ā§‹āĻŸ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻŽāĻ—ā§āĻ¨ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāĻ–āĻ¨āĻ“ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻšāĻ˛āĻ›ā§‡?

āĻŦā§āĻāĻ˛āĻžāĻŽ, āĻ­āĻžāĻŦāĻ¨āĻžāĻŸāĻž āĻ…āĻĻā§āĻ­ā§āĻ¤āĨ¤

āĻ†āĻŽāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻ†āĻŽāĻŋ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ•ā§‡āĻ¨ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ†āĻŽāĻžāĻ•ā§‡ āĻāĻ¤ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ‰āĻĻā§āĻŦāĻŋāĻ—ā§āĻ¨ āĻ•āĻ°ā§‡āĨ¤

āĻ•ā§‡āĻ¨ āĻ†āĻ•āĻžāĻ° āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ

āĻĄāĻ•āĻžāĻ° āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻ° āĻĢāĻ˛ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻžāĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻĻāĻŋāĻ‡āĨ¤ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡, āĻ†āĻŽāĻ°āĻž āĻ›āĻŦāĻŋāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°āĻŋ, āĻ•āĻžāĻ°āĻŖ āĻāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋāĻ‡ āĻĨāĻžāĻ•ā§‡ā§ˇ

āĻ†āĻ°āĻ“ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻšāĻŋāĻ¤ā§āĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸā§ āĻĻā§āĻ°ā§āĻ¤ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡, āĻ†āĻŽāĻžāĻ° āĻŽāĻ¤ā§‡, āĻāĻŸāĻŋ āĻāĻ¤ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧāĨ¤

āĻ…āĻ¨ā§āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨: āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ†āĻ•āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ‰āĻĻā§āĻŦāĻŋāĻ—ā§āĻ¨ āĻšāĻ¨, āĻ¤āĻŦā§‡ āĻ†āĻ˛āĻĒāĻžāĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻœā§‡āĻĻā§‡āĻ°āĻ•ā§‡ āĻ›ā§‹āĻŸ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤āĨ¤

āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°ā§‹āĻ˛ā§‡āĻ¸ āĻ‡āĻŽā§‡āĻœ

āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°ā§‹āĻ˛ā§‡āĻ¸ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻŽā§ŒāĻ˛āĻŋāĻ• "āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°ā§‹āĻ˛ā§‡āĻ¸" āĻšāĻŋāĻ¤ā§āĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ…āĻĢāĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻ¤ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ°, āĻļā§‡āĻ˛ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻ¨ā§‡āĻ‡ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ…āĻ­ā§āĻ¯āĻ¸ā§āĻ¤āĨ¤ āĻĢāĻ˛ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ°āĻĻā§‡āĻ° āĻŽāĻ¤ā§‹ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ 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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨