ืื™ืจ ืงืขื ื˜ ืื™ืฆื˜ ื‘ื•ื™ืขืŸ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ืขืจ ืื™ืŸ ื•ื•ืึธืจืฃ ื ื™ืฆืŸ ืึท ืจืขื’ื•ืœืขืจ Dockerfile

ื‘ืขืกืขืจ ืฉืคึผืขื˜ ื•ื•ื™ ืงื™ื™ื ืžืึธืœ. ืึธื“ืขืจ ื•ื•ื™ ืžื™ืจ ื›ึผืžืขื˜ ื’ืขืžืื›ื˜ ืึท ืขืจื ืกื˜ ื’ืจื™ื™ึทื– ื“ื•ืจืš ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืจืขื’ื•ืœืขืจ Dockerfiles ืฆื• ื‘ื•ื™ืขืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ื™ืœื“ืขืจ.

ืื™ืจ ืงืขื ื˜ ืื™ืฆื˜ ื‘ื•ื™ืขืŸ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ืขืจ ืื™ืŸ ื•ื•ืึธืจืฃ ื ื™ืฆืŸ ืึท ืจืขื’ื•ืœืขืจ Dockerfile

ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื“ืŸ ื•ื•ืขื’ืŸ werf - GitOps ื™ื•ื˜ื™ืœืึทื˜ื™ื– ื•ื•ืึธืก ื™ื ื˜ืึทื’ืจื™ื™ืฅ ืžื™ื˜ ืงื™ื™ืŸ ืกื™ / ืงืึธืžืคึผืึทืงื˜ื“ื™ืกืง ืกื™ืกื˜ืขื ืื•ืŸ ื’ื™ื˜ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืœื™ื™ืคืกื™ื™ืงืึทืœ, ืึทืœืึทื•ื™ื ื’:

  • ืงืœื™ื™ึทื‘ืŸ ืื•ืŸ ืึทืจื•ื™ืกื’ืขื‘ืŸ ื‘ื™ืœื“ืขืจ,
  • ืฆืขื•ื•ื™ืงืœืขืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ Kubernetes,
  • ื•ื™ืกืžืขืงืŸ ืึทื ื™ื•ื–ื“ ื‘ื™ืœื“ืขืจ ื ื™ืฆืŸ ืกืคึผืขืฆื™ืขืœ ืคึผืึทืœืึทืกื™ื–.


ื“ื™ ืคื™ืœืึธืกืึธืคื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ืฆื• ื–ืึทืžืœืขืŸ ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ืžื›ืฉื™ืจื™ื ืื™ืŸ ืึท ืื™ื™ืŸ ื™ื•ื ืึทืคื™ื™ื“ ืกื™ืกื˜ืขื ื•ื•ืึธืก ื’ื™ื˜ DevOps ืขื ื“ื–ืฉืึทื ื™ืจื– ืงืึธื ื˜ืจืึธืœ ืื™ื‘ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืื•ื™ื‘ ืžืขื’ืœืขืš, ื™ื’ื–ื™ืกื˜ื™ื ื’ ื™ื•ื˜ื™ืœืึทื˜ื™ื– (ื•ื•ื™ ื”ืขืœื ืื•ืŸ ื“ืึธืงืงืขืจ) ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜. ืื•ื™ื‘ ืขืก ืื™ื– ืงื™ื™ืŸ ืœื™ื™ื–ื•ื ื’ ืฆื• ืึท ืคึผืจืึธื‘ืœืขื, ืžื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืื•ืŸ ืฉื˜ื™ืฆืŸ ืึทืœืฅ ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ื“ืขื.

ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜: ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื‘ื™ืœื“ ืงืึทืœืขืงื˜ืขืจ

ื“ืึธืก ืื™ื– ื’ืขืฉืขืŸ ืžื™ื˜ ื“ื™ ื‘ื™ืœื“ ืงืึทืœืขืงื˜ืขืจ ืื™ืŸ ื•ื•ืึธืจืฃ: ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ื“ืึธืงืงืขืจืคื™ืœืข ืื™ื– ื ื™ืฉื˜ ื’ืขื ื•ื’ ืคึฟืึทืจ ืื•ื ื“ื–. ืื•ื™ื‘ ืื™ืจ ื ืขืžืขืŸ ืึท ืฉื ืขืœ ืงื•ืง ืื™ืŸ ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืจื•ื™ืขืงื˜, ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ืฉื•ื™ืŸ ืืจื•ื™ืก ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ werf (ื“ืขืžืึธืœื˜ ื ืึธืš ื‘ืืงืื ื˜ ื•ื•ื™ ื“ืึทืคึผ).

ื‘ืฉืขืช ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ื‘ื ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ Docker ื‘ื™ืœื“ืขืจ, ืžื™ืจ ื’ืขืฉื•ื•ื™ื ื“ ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– Dockerfile ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืื•ื ื“ื– ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื–ื™ื™ืขืจ ืกืคึผืขืฆื™ืคื™ืฉ ื˜ืึทืกืงืก:

  1. ื“ื™ ื ื•ื™ื˜ื™ืง ืฆื• ื‘ื•ื™ืขืŸ ื˜ื™ืคึผื™ืฉ ืงืœื™ื™ืŸ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืœื•ื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื ืึธืจืžืึทืœ ืกื›ืขืžืข:
    • ื™ื ืกื˜ืึทืœื™ืจืŸ ืกื™ืกื˜ืขื-ื‘ืจื™ื™ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–,
    • ื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ืคึผืขืงืœ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขืคึผืขื ื“ืขื ืกื™ ืœื™ื™ื‘ืจืขืจื™ื–,
    • ืงืœื™ื™ึทื‘ืŸ ื ื›ืกื™ื,
    • ืื•ืŸ ืจื•ื‘ึฟ ื™ืžืคึผืึธืจื˜ืึทื ื˜ืœื™, ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืงืึธื“ ืื™ืŸ ื“ื™ ื‘ื™ืœื“ ื’ืขืฉื•ื•ื™ื ื“ ืื•ืŸ ื™ืคื™ืฉืึทื ื˜ืœื™.
  2. ื•ื•ืขืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ืคึผืจื•ื™ืขืงื˜ ื˜ืขืงืขืก, ื“ื™ ื‘ื™ืœื“ืขืจ ืžื•ื–ืŸ ื’ืขืฉื•ื•ื™ื ื“ ืžืึทื›ืŸ ืึท ื ื™ื™ึทืข ืฉื™ื›ื˜ืข ื“ื•ืจืš ืึทืคึผืœื™ื™ื™ื ื’ ืึท ืœืึทื˜ืข ืฆื• ื“ื™ ื’ืขื‘ื™ื˜ืŸ ื˜ืขืงืขืก.
  3. ืื•ื™ื‘ ื–ื™ื›ืขืจ ื˜ืขืงืขืก ื”ืึธื‘ืŸ ื’ืขื‘ื™ื˜ืŸ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืจื™ื‘ื™ืœื“ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืึธืคืขื ื’ื™ืง ื‘ื™ื ืข.

ื”ื™ื™ึทื ื˜ ืื•ื ื“ื–ืขืจ ืงืึทืœืขืงื˜ืขืจ ื”ืื˜ ืคื™ืœืข ืื ื“ืขืจืข ืคึผืึทืกืึทื‘ื™ืœืึทื˜ื™ื–, ืึธื‘ืขืจ ื“ืึธืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ื“ื™ ืขืจืฉื˜ืข ืชืื•ื•ืช ืื•ืŸ ื“ืจื™ื ื’ืœืขืš.

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืึธืŸ ื˜ืจืื›ื˜ืŸ ืฆื•ื•ื™ื™ ืžืึธืœ, ืžื™ืจ ืึทืจืžื“ ื–ื™ืš ืžื™ื˜ ื“ื™ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ (ื–ืข ืื•ื ื˜ืŸ) ืื•ืŸ ืฉืœืึธื’ืŸ ื“ื™ ื•ื•ืขื’ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืื™ื™ื’ืŸ ื“ืกืœ! ืื™ืŸ ืœื•ื™ื˜ ืžื™ื˜ ื“ื™ ืึทื‘ื“ื–ืฉืขืงื˜ื™ื•ื•ื–, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ื“ืขื” ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืคึผืจืึธืฆืขืก ืื™ืŸ ืกื˜ืึทื’ืขืก ืื•ืŸ ื‘ืึทืฉื˜ื™ืžืขืŸ ื“ื™ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืคื•ืŸ ื“ื™ ืกื˜ืึทื’ืขืก ืื•ื™ืฃ ื˜ืขืงืขืก. ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื“ ืขืก ืืฒื’ืขื ืขื ื–ืึทืžืœืขืจ, ื•ื•ืึธืก ืคืืจืงืขืจื˜ ื“ื™ ื“ืกืœ ืื™ืŸ ื“ื™ ืœืขืฆื˜ ืฆื™ืœ - ืึท ืคืืจื–ืืžืœื˜ ื‘ื™ืœื“. ืื™ืŸ ืขืจืฉื˜ืขืจ ื“ื™ ื“ืกืœ ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ ืจื•ื‘ื™, ืึธื‘ืขืจ ื•ื•ื™ ื™ื‘ืขืจื’ืึทื ื’ ืฆื• ื’ืึธืœืึทื ื’ - ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืงืึทืœืขืงื˜ืขืจ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ื–ื™ื™ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ืึท YAML ื˜ืขืงืข.

ืื™ืจ ืงืขื ื˜ ืื™ืฆื˜ ื‘ื•ื™ืขืŸ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ืขืจ ืื™ืŸ ื•ื•ืึธืจืฃ ื ื™ืฆืŸ ืึท ืจืขื’ื•ืœืขืจ Dockerfile
ืึทืœื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื“ืึทืคึผ ืื™ืŸ ืจื•ื‘ื™

ืื™ืจ ืงืขื ื˜ ืื™ืฆื˜ ื‘ื•ื™ืขืŸ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ืขืจ ืื™ืŸ ื•ื•ืึธืจืฃ ื ื™ืฆืŸ ืึท ืจืขื’ื•ืœืขืจ Dockerfile
ืงืจืึทื ื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื•ื•ืึธืจืฃ ืื•ื™ืฃ YAML

ื“ื™ ืžืขืงืึทื ื™ื–ืึทื ืคื•ืŸ ื“ื™ ืงืึทืœืขืงื˜ืขืจ ืื•ื™ืš ื’ืขื‘ื™ื˜ืŸ ืžื™ื˜ ืฆื™ื™ึทื˜. ืื™ืŸ ืขืจืฉื˜ืขืจ, ืžื™ืจ ืคืฉื•ื˜ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืึท ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง Dockerfile ืื•ื™ืฃ ื“ื™ ืคืœื™ืขืŸ ืคึฟื•ืŸ ืื•ื ื“ื–ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืื•ืŸ ื“ืขืžืึธืœื˜ ืžื™ืจ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ืœื•ื™ืคืŸ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืื™ืŸ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ื˜ื•ืขืŸ.

NB: ื“ืขืจื•ื•ื™ื™ึทืœ, ืื•ื ื“ื–ืขืจ ืงืึทืœืขืงื˜ืขืจ, ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ (ืื™ืŸ YAML) ืื•ืŸ ืื™ื– ื’ืขืจื•ืคืŸ ื“ื™ ืกื˜ืึทืคึผืขืœ ืงืึทืœืขืงื˜ืขืจ, ื”ืื˜ ืฉื•ื™ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ ืึท ื’ืึทื ืฅ ืฉื˜ืึทืจืง ื’ืขืฆื™ื™ึทื’. ื–ื™ื™ืŸ ื“ื™ื˜ื™ื™ืœื“ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคืืจื“ื™ื ื˜ ื‘ืึทื–ื•ื ื“ืขืจ ืึทืจื˜ื™ืงืœืขืŸ, ืื•ืŸ ื™ืงืขืจื“ื™ืง ื“ืขื˜ืึทื™ืœืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ.

ื•ื•ื™ืกื™ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืœืขื

ืื‘ืขืจ ืžื™ืจ ื”ืื‘ืŸ ืื™ื™ื ื’ืขื–ืขืŸ, ืื•ืŸ ื ื™ืฉื˜ ื’ืœื™ื™ืš, ืื– ืžื™ืจ ื”ืื‘ืŸ ื’ืขืžืื›ื˜ ืื™ื™ืŸ ื˜ืขื•ืช: ืžื™ืจ ื”ืื‘ืŸ ื ื™ืฉื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืคืขืื™ืงื™ื™ื˜ ื‘ื•ื™ืขืŸ ื‘ื™ืœื“ืขืจ ื“ื•ืจืš ื ืึธืจืžืึทืœ Dockerfile ืื•ืŸ ื•ื™ืกืฉื˜ื™ืžืขืŸ ื–ื™ื™ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกื•ืฃ-ืฆื•-ืกื•ืฃ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ (ื“"ื” ืงืœื™ื™ึทื‘ืŸ ื‘ื™ืœื“ืขืจ, ืฆืขื•ื•ื™ืงืœืขืŸ ืื•ืŸ ืจื™ื™ืŸ ื–ื™ื™). ื•ื•ื™ ืงืขืŸ ืขืก ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืžืึทื›ืŸ ืึท ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes ืื•ืŸ ื ื™ืฉื˜ ื™ื ืกื˜ืจื•ืžืขื ื˜ Dockerfile ืฉื˜ื™ืฆืŸ, ื“"ื”. ื ืึธืจืžืึทืœ ื•ื•ืขื’ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื‘ื™ืœื“ืขืจ ืคึฟืึทืจ ืจื•ื‘ึฟ ืคึผืจืึทื“ื–ืฉืขืงืก?

ืึทื ืฉื˜ืึธื˜ ืฆื• ืขื ื˜ืคึฟืขืจืŸ ื“ืขื ืงืฉื™ื, ืžื™ืจ ืคืึธืจืฉืœืึธื’ืŸ ืึท ืœื™ื™ื–ื•ื ื’. ื•ื•ืึธืก ืื•ื™ื‘ ืื™ืจ ืฉื•ื™ืŸ ื”ืึธื‘ืŸ ืึท Dockerfile (ืึธื“ืขืจ ืึท ืกื›ื•ื ืคื•ืŸ Dockerfiles) ืื•ืŸ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื ื•ืฆืŸ ื•ื•ืึธืจืฃ?

NB: ืื’ื‘, ืคืืจื•ื•ืืก ื•ื•ืืœื˜ ืื™ืจ ืืคื™ืœื• ื’ืขื•ื•ืืœื˜ ื ื•ืฆืŸ ื•ื•ืขืจืฃ? ื“ื™ ื”ื•ื™ืคึผื˜ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืงื•ืžืขืŸ ืึทืจืึธืคึผ ืฆื• ื“ื™ ืคืืœื’ืขื ื“ืข:

  • ืคื•ืœ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืฆื™ืงืœ ื›ื•ืœืœ ื‘ื™ืœื“ ืจื™ื™ื ื™ืงื•ื ื’;
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคื™ืจืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืคื•ืŸ ืขื˜ืœืขื›ืข ื‘ื™ืœื“ืขืจ ืื™ืŸ ืึท ืื™ื™ืŸ ืงืึธื ืคื™ื’ื•ืจืึทื˜ื™ืึธืŸ;
  • ื™ืžืคึผืจื•ื•ื•ื“ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืคึผืจืึธืฆืขืก ืคึฟืึทืจ ื”ืขืœื-ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ื˜ืฉืึทืจืฅ.

ื ืžืขืจ ืคื•ืœืฉื˜ืขื ื“ื™ืง ืจืฉื™ืžื” ืคื•ืŸ ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ืคึผืจื•ื™ืขืงื˜ ื‘ืœืึทื˜.

ืื•ื™ื‘ ืคืจื™ืขืจ ืžื™ืจ ื•ื•ืึธืœื˜ ื”ืึธื‘ืŸ ื’ืขืคึฟื™ื ื˜ ืฆื• ืจื™ืจื™ื™ื˜ ื“ื™ Dockerfile ืื™ืŸ ืื•ื ื“ื–ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืื™ืฆื˜ ืžื™ืจ ื•ื•ืขืœืŸ ืฆื•ืคึฟืจื™ื“ืŸ ื–ืึธื’ืŸ: "ืœืึธื–ืŸ ื•ื•ืึธืจืฃ ื‘ื•ื™ืขืŸ ื“ื™ื™ืŸ Dockerfiles!"

ื•ื•ื™ ืฆื• ื ื•ืฆืŸ?

ื“ื™ ืคื•ืœ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ืขื ืฉื˜ืจื™ืš ืืจื•ื™ืก ืื™ืŸ ื“ืขืจ ืžืขืœื“ื•ื ื’ ื•ื•ืึธืจืฃ ื•ื•1.0.3-ื‘ื™ืชื.1. ื“ืขืจ ื’ืขื ืขืจืึทืœ ืคึผืจื™ื ืฆื™ืคึผ ืื™ื– ืคึผืฉื•ื˜: ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ ื“ืขื ื“ืจืš ืฆื• ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ Dockerfile ืื™ืŸ ื“ื™ ื•ื•ืึธืจืฃ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืื•ืŸ ื“ืขืจื ืึธืš ืœื•ื™ืคื˜ ื“ื™ ื‘ืึทืคึฟืขืœ. werf build... ืื•ืŸ ืึทื– ืก ืขืก - ื•ื•ืึธืจืฃ ื•ื•ืขื˜ ืึทืกืขืžื‘ืึทืœ ื“ื™ ื‘ื™ืœื“. ื–ืืœ ืก ืงื•ืง ื‘ื™ื™ึท ืึท ืึทื‘ืกื˜ืจืึทืงื˜ ื‘ื™ื™ืฉืคึผื™ืœ.

ืœืืžื™ืจ ืžืขืœื“ืŸ ื“ืขื ื ืขืงืกื˜ืŸ Dockerfile ืื™ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื•ื•ืึธืจืฆืœ:

FROM ubuntu:18.04
RUN echo Building ...

ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืžืขืœื“ืŸ werf.yamlื•ื•ืึธืก ื ื™ืฆื˜ ื“ืขื Dockerfile:

configVersion: 1
project: dockerfile-example
---
image: ~
dockerfile: ./Dockerfile

ืึทืœืข! ืœื™ื ืงืก ืœื•ื™ืคืŸ werf build:

ืื™ืจ ืงืขื ื˜ ืื™ืฆื˜ ื‘ื•ื™ืขืŸ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ืขืจ ืื™ืŸ ื•ื•ืึธืจืฃ ื ื™ืฆืŸ ืึท ืจืขื’ื•ืœืขืจ Dockerfile

ืื™ืŸ ื“ืขืจืฆื•, ืื™ืจ ืงืขื ืขืŸ ื“ืขืจืงืœืขืจืŸ ื“ื™ ืคืืœื’ืขื ื“ืข werf.yaml ืฆื• ื‘ื•ื™ืขืŸ ืขื˜ืœืขื›ืข ื‘ื™ืœื“ืขืจ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข Dockerfiles ืื™ืŸ ืึทืžืึธืœ:

configVersion: 1
project: dockerfile-example
---
image: backend
dockerfile: ./dockerfiles/Dockerfile-backend
---
image: frontend
dockerfile: ./dockerfiles/Dockerfile-frontend

ืฆื•ื ืกื•ืฃ, ืขืก ืื•ื™ืš ืฉื˜ื™ืฆื˜ ืคืึธืจืŸ ื ืึธืš ื‘ื•ื™ืขืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก, ืึทื–ืึท ื•ื•ื™ --build-arg ะธ --add-host - ื“ื•ืจืš werf config. ื ืคื•ืœืฉื˜ืขื ื“ื™ืง ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ Dockerfile ื‘ื™ืœื“ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ื– ื‘ื ื™ืžืฆื ืื™ืŸ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื‘ืœืึทื˜.

ื•ื•ื™ ื˜ื•ื˜ ืขืก ืึทืจื‘ืขื˜?

ื‘ืขืฉืึทืก ื“ื™ ื‘ื•ื™ืขืŸ ืคึผืจืึธืฆืขืก, ื“ืขืจ ื ืึธืจืžืึทืœ ืงืึทืฉ ืคื•ืŸ ื”ื™ื’ืข ืœื™ื™ึทืขืจืก ืื™ืŸ ื“ืึธืงืงืขืจ ืคืึทื ื’ืงืฉืึทื ื–. ืึธื‘ืขืจ, ื•ื•ืึธืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืื™ื– ืึทื– ื•ื•ืึธืจืฃ ืื•ื™ืš ื™ื ื˜ืึทื’ืจื™ื™ืฅ Dockerfile ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ืŸ ื–ื™ื™ึทืŸ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ. ื•ื•ืืก ืžื™ื™ื ื˜ ืขืก?

  1. ื™ืขื“ืขืจ ื‘ื™ืœื“ ื’ืขื‘ื•ื™ื˜ ืคื•ืŸ ืึท ื“ืึธืงืงืขืจืคื™ืœืข ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืื™ื™ืŸ ื‘ื™ื ืข ื’ืขืจื•ืคืŸ dockerfile (ืื™ืจ ืงืขื ื˜ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ืกื˜ืึทื’ืขืก ื–ืขื ืขืŸ ืื™ืŸ ื•ื•ืึธืจืฃ ื“ืึธ).
  2. ืคึฟืึทืจ ื‘ื™ื ืข dockerfile werf ืงืึทืœืงื™ืึทืœื™ื™ืฅ ืึท ื›ืกื™ืžืข ื•ื•ืึธืก ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ Dockerfile ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ื•ื•ืขืŸ ื“ื™ Dockerfile ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ, ื“ื™ ื‘ื™ื ืข ื›ืกื™ืžืข ืขื ื“ืขืจื•ื ื’ืขืŸ dockerfile ืื•ืŸ werf ื™ื ื™ืฉื™ืึทืฅ ืึท ืจื™ื‘ื™ืœื“ ืคื•ืŸ ื“ืขื ื‘ื™ื ืข ืžื™ื˜ ืึท ื ื™ื™ึทืข Dockerfile ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ืื•ื™ื‘ ื“ื™ ื›ืกื™ืžืข ื˜ื•ื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ, werf ื ืขืžื˜ ื“ื™ ื‘ื™ืœื“ ืคื•ืŸ ื“ื™ ืงืึทืฉ (ืžืขืจ ื“ืขื˜ืึทื™ืœืก ื•ื•ืขื’ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืกื™ื’ื ืึทื˜ืฉืขืจื– ืื™ืŸ werf ื–ืขื ืขืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื ื‘ืึทืจื™ื›ื˜).
  3. ื“ืขืจื ืึธืš, ื“ื™ ื’ืขื–ืืžืœื˜ ื‘ื™ืœื“ืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืืจื•ื™ืก ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ werf publish (ืึธื“ืขืจ werf build-and-publish) ืื•ืŸ ื ื•ืฆืŸ ืขืก ืคึฟืึทืจ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืฆื• Kubernetes. ืคึฟืึทืจืขืคึฟื ื˜ืœืขื›ื˜ ื‘ื™ืœื“ืขืจ ืฆื• ื“ื™ ื“ืึธืงืขืจ ืจืขื’ื™ืกื˜ืจื™ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืœื™ื ื“ ืžื™ื˜ ื ืึธืจืžืึทืœ ื•ื•ืขืจืฃ ืงืœื™ื ืึทืคึผ ืžื›ืฉื™ืจื™ื, ื“"ื”. ืึทืœื˜ ื‘ื™ืœื“ืขืจ (ืขืœื˜ืขืจ ื•ื•ื™ N ื˜ืขื’), ื‘ื™ืœื“ืขืจ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื ื™ื˜-ืขื’ื–ื™ืกื˜ืึทื ื˜ ื’ื™ื˜ ืฆื•ื•ื™ื™ื’ืŸ, ืื•ืŸ ืื ื“ืขืจืข ืคึผืึทืœืึทืกื™ื– ื•ื•ืขื˜ ื•ื•ืขืจืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืงืœื™ื ื“.

ืžืขืจ ื“ืขื˜ืึทื™ืœืก ื•ื•ืขื’ืŸ ื“ื™ ื•ื•ื™ื™ื–ื˜ ื“ื™ืกืงืจื™ื™ื‘ื“ ื“ืึธ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ:

ื”ืขืจื•ืช ืื•ืŸ ืคึผืจื™ืงืึธืฉืึทื ื–

1. ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง URL ืื™ื– ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ ADD

ื“ืขืจื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜ ืฆื• ื ื•ืฆืŸ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง URL ืื™ืŸ ืึท ื“ื™ืจืขืงื˜ื™ื•ื• ADD. Werf ื•ื•ืขื˜ ื ื™ืฉื˜ ืึธื ื”ื™ื™ื‘ืŸ ืึท ืจื™ื‘ื™ืœื“ ื•ื•ืขืŸ ื“ื™ ืžื™ื˜ืœ ืื™ืŸ ื“ื™ ืกืคึผืขืกืึทืคื™ื™ื“ URL ืขื ื“ืขืจื•ื ื’ืขืŸ. ืžื™ืจ ืคึผืœืึทืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ืขื ืฉื˜ืจื™ืš ื‘ืึทืœื“.

2. ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ืœื™ื™ื’ืŸ .ื’ื™ื˜ ืฆื• ื“ื™ ื‘ื™ืœื“

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืึทื“ื™ื ื’ ืึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ .git ืื™ืŸ ื“ื™ ื‘ื™ืœื“ - ืึท ืจืึธืฆื›ื™ืฉ ืฉืœืขื›ื˜ ืคื™ืจ ืื•ืŸ ื“ืึธ ืก ื•ื•ืึธืก:

  1. ืฆื™ .git ื‘ืœื™ื™ื‘ื˜ ืื™ืŸ ื“ื™ ืœืขืฆื˜ ื‘ื™ืœื“, ื“ืึธืก ื•ื•ื™ื™ืึทืœื™ื™ืฅ ื“ื™ ืคึผืจื™ื ืฆื™ืคึผืŸ 12 ืคืึทืงื˜ืึธืจ ืึทืคึผ: ื–ื™ื ื˜ ื“ื™ ืœืขืฆื˜ ื‘ื™ืœื“ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืœื™ื ื’ืงื˜ ืฆื• ืึท ืื™ื™ืŸ ื™ื‘ืขืจื’ืขื‘ืŸ, ืขืก ื–ืึธืœ ื ื™ื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ื˜ืึธืŸ git checkout ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื™ื‘ืขืจื’ืขื‘ืŸ.
  2. .git ื™ื ืงืจื™ืกื™ื– ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ืขื ื‘ื™ืœื“ (ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืจื•ื™ืก ื•ื•ื™ื™ึทืœ ื’ืจื•ื™ืก ื˜ืขืงืขืก ื–ืขื ืขืŸ ืึทืžืึธืœ ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ืขืก ืื•ืŸ ื“ืขืžืึธืœื˜ ืื•ื™ืกื’ืขืžืขืงื˜). ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึท ืึทืจื‘ืขื˜-ื‘ื•ื™ื ืคึฟืึทืจื‘ื•ื ื“ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื™ื‘ืขืจื’ืขื‘ืŸ ื•ื•ืขื˜ ื ื™ืฉื˜ ืึธืคืขื ื’ืขืŸ ืื•ื™ืฃ ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืึธืคึผืขืจืึทื˜ื™ืึธื ืก ืื™ืŸ ื’ื™ื˜. ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ื™ ื“ืขืจืฆื• ืื•ืŸ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ื‘ืึทื–ื™ื™ึทื˜ื™ืงื•ื ื’ .git ืคึฟื•ืŸ ื“ื™ ืœืขืฆื˜ ื‘ื™ืœื“ ื•ื•ืขื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ: ื“ื™ ื‘ื™ืœื“ ื•ื•ืขื˜ ื ืึธืš ืงืจื™ื’ืŸ ืึทืŸ ืขืงืกื˜ืจืข ืฉื™ื›ื˜ืข - ื“ืึธืก ืื™ื– ื•ื•ื™ Docker ืึทืจื‘ืขื˜.
  3. ื“ืึธืงืขืจ ืงืขื ืขืŸ ืึธื ื”ื™ื™ื‘ืŸ ืึทืŸ ื•ืžื ื™ื™ื˜ื™ืง ืจื™ื‘ื™ืœื“, ืืคื™ืœื• ืื•ื™ื‘ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืงืึทืžื™ื˜ ืื™ื– ื’ืขื‘ื•ื™ื˜, ืึธื‘ืขืจ ืคึฟื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืึทืจื‘ืขื˜ ื‘ื™ื™ืžืขืจ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, GitLab ืงืจื™ื™ื™ืฅ ื‘ืึทื–ื•ื ื“ืขืจ ืงืœืึธื•ื ื“ ื“ื™ืจืขืงื˜ืขืจื™ื– ืื™ืŸ /home/gitlab-runner/builds/HASH/[0-N]/yourproject ื•ื•ืขืŸ ืคึผืึทืจืึทืœืขืœ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื™ื– ืขื ื™ื™ื‘ืึทืœื“. ื“ื™ ืขืงืกื˜ืจืข ืจื™ืึทืกืขืžื‘ืึทืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืจืขื›ื˜ ืฆื• ื“ืขื ืคืึทืงื˜ ืึทื– ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ .git ืื™ื– ืึทื ื“ืขืจืฉ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืงืœืึธื•ื ื“ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ืืคื™ืœื• ืื•ื™ื‘ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื™ื‘ืขืจื’ืขื‘ืŸ ืื™ื– ื’ืขื‘ื•ื™ื˜.

ื“ื™ ืœืขืฆื˜ืข ืคื•ื ื˜ ืื•ื™ืš ื”ืื˜ ืงืึทื ืกืึทืงื•ื•ืขื ืกืึทื– ื•ื•ืขืŸ ื ื™ืฆืŸ werf. Werf ืจื™ืงื•ื•ื™ื™ืขืจื– ื“ื™ ื’ืขื‘ื•ื™ื˜ ืงืึทืฉ ืฆื• ื–ื™ื™ืŸ ืคืึธืจืฉื˜ืขืœืŸ ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ืขื˜ืœืขื›ืข ืงืึทืžืึทื ื“ื– (ืœืžืฉืœ. werf deploy). ื•ื•ืขืŸ ื“ื™ ืงืึทืžืึทื ื“ื– ืœื•ื™ืคืŸ, werf ืงืึทืœืงื™ืึทืœื™ื™ืฅ ื‘ื™ื ืข ืกื™ื’ื ืึทื˜ืฉืขืจื– ืคึฟืึทืจ ื“ื™ ื‘ื™ืœื“ืขืจ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ werf.yaml, ืื•ืŸ ื–ื™ื™ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืื™ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืงืึทืฉ - ืึทื ื“ืขืจืฉ ื“ื™ ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ืคืึธืจื–ืขืฆืŸ ืืจื‘ืขื˜ืŸ. ืื•ื™ื‘ ื“ื™ ื‘ื™ื ืข ื›ืกื™ืžืข ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ืื™ื ื”ืึทืœื˜ .git, ื“ืขืžืึธืœื˜ ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืงืึทืฉ ื•ื•ืึธืก ืื™ื– ืึทื ืกื˜ื™ื™ื‘ืึทืœ ืฆื• ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื™ืจืขืœืึทื•ื•ืึทื ื˜ ื˜ืขืงืขืก, ืื•ืŸ werf ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืคืึทืจื’ืขื‘ืŸ ืึทื–ืึท ืึท ืคืึทืจื–ืข (ืคึฟืึทืจ ืžืขืจ ื“ืขื˜ืึทื™ืœืก, ื–ืขืŸ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ).

ืงื•ื™ืœืขืœื“ื™ืง ืึทื“ื™ื ื’ ื‘ืœื•ื™ื– ื–ื™ื›ืขืจ ื ื™ื™ื˜ื™ืง ื˜ืขืงืขืก ื“ื•ืจืš ื“ื™ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ADD ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ ื™ื ืงืจื™ืกื™ื– ื“ื™ ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜ ืื•ืŸ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ ื“ื™ ื’ืขืฉืจื™ื‘ืŸ Dockerfile, ืื•ืŸ ืื•ื™ืš ื™ืžืคึผืจื•ื•ื•ื– ื“ื™ ืคืขืกื˜ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืงืึทืฉ ื’ืขื–ืืžืœื˜ ืคึฟืึทืจ ื“ืขื Dockerfile, ืฆื• ื™ืจืขืœืึทื•ื•ืึทื ื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื’ื™ื˜.

ื’ืึทื ืฅ

ืื•ื ื“ื–ืขืจ ืขืจืฉื˜ ื•ื•ืขื’ ืฆื• ืฉืจื™ื™ื‘ืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ื‘ื™ืœื“ืขืจ ืคึฟืึทืจ ืกืคึผืขืฆื™ืคื™ืฉ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ืฉื•ื•ืขืจ, ืขืจืœืขืš ืื•ืŸ ื’ืœื™ื™ืš: ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื ื™ืฆืŸ ืงืจืึทื˜ืฉื™ื– ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ื ืึธืจืžืึทืœ ื“ืึธืงืขืจืคื™ืœืข, ืžื™ืจ ื’ืขืฉืจื™ื‘ืŸ ืื•ื ื“ื–ืขืจ ืœื™ื™ื–ื•ื ื’ ืžื™ื˜ ืžื ื”ื’ ืกื™ื ื˜ืึทืงืก. ืื•ืŸ ื“ืึธืก ื”ืื˜ ื–ื™ื™ึทืŸ ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื–: ื“ื™ ืกื˜ืึทืคึผืขืœ ืงืึทืœืขืงื˜ืขืจ ืงืึธืคึผืข ืžื™ื˜ ื–ื™ื™ืŸ ืึทืจื‘ืขื˜ ื‘ื™ืฉืœื™ื™ืžืขืก.

ืึธื‘ืขืจ, ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ืฉืจื™ื™ื‘ืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ื‘ื™ืœื“ืขืจ, ืžื™ืจ ืคืึทืจืคืึทืœืŸ ื“ืขืจื–ืขืŸ ืคื•ืŸ ื“ื™ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ื’ื–ื™ืกื˜ื™ื ื’ Dockerfiles. ื“ืขืจ ืคืœืึธ ืื™ื– ืื™ืฆื˜ ืคืึทืจืคืขืกื˜ื™ืงื˜, ืื•ืŸ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ืžื™ืจ ืคึผืœืึทื ื™ืจืŸ ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ Dockerfile ืฉื˜ื™ืฆืŸ ืฆื•ื–ืึทืžืขืŸ ืžื™ื˜ ืื•ื ื“ื–ืขืจ ืงืึทืกื˜ืึทืžื™ื™ื–ื“ ืกื˜ืึทืคึผืขืœ ื‘ื™ืœื“ืขืจ ืคึฟืึทืจ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื‘ื•ื™ืขืŸ ืื•ืŸ ืคึฟืึทืจ ื‘ื•ื™ืขืŸ ื ื™ืฆืŸ Kubernetes (ื“"ื” ื‘ื•ื™ืขืŸ ืื•ื™ืฃ ืจืึทื ืขืจื– ื™ืŸ Kubernetes, ื•ื•ื™ ืื™ื– ื’ืขื˜ืืŸ ืื™ืŸ ืงืึทื ื™ืงืึธ).

ืึทื–ื•ื™, ืื•ื™ื‘ ืื™ืจ ืคึผืœื•ืฆืœื™ื ื’ ื”ืึธื‘ืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ื“ืึธืงืงืขืจืคื™ืœืขืก ืœื™ื’ื ืขืจื™ืฉ ืึทืจื•ื ... ืคึผืจื•ื‘ื™ืจืŸ werf!

ืคึผืก ืจืฉื™ืžื” ืคื•ืŸ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื•ื™ืฃ ื“ืขืจ ื˜ืขืžืข

ืœื™ื™ืขื ืขืŸ ืื•ื™ืš ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’: "werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)'.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’