เชคเชฎเซ‡ เชนเชตเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ werf เชฎเชพเช‚ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹

เช•เซเชฏเชพเชฐเซ‡เช• เชจเชพ เชชเชนเซ‹เชšเชตเชพ เช•เชฐเชคเชพ. เช…เชฅเชตเชพ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเซเชธ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เชจ เชนเซ‹เชตเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช…เชฎเซ‡ เชฒเช—เชญเช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เช‚เชญเซ€เชฐ เชญเซ‚เชฒ เช•เชฐเซ€ เช›เซ‡.

เชคเชฎเซ‡ เชนเชตเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ werf เชฎเชพเช‚ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹

เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚ เชตเชฐเซเชซ โ€” GitOps เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชœเซ‡ เช•เซ‹เชˆเชชเชฃ CI/CD เชธเชฟเชธเซเชŸเชฎ เชธเชพเชฅเซ‡ เชธเช‚เช•เชฒเชฟเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชธเชฎเช—เซเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเซ€เชตเชจเชšเช•เซเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡, เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡:

  • เช›เชฌเซ€เช“ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‹ เช…เชจเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ‹,
  • เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชœเชฎเชพเชตเชตเชพ,
  • เช–เชพเชธ เชจเซ€เชคเชฟเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชฟเชจเช‰เชชเชฏเซ‹เช—เซ€ เช›เชฌเซ€เช“ เช•เชพเชขเซ€ เชจเชพเช–เซ‹.


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

เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ: เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เช›เชฌเซ€ เช•เชฒเซ‡เช•เซเชŸเชฐ

เชตเชฐเซเชซเชฎเชพเช‚ เช‡เชฎเซ‡เชœ เช•เชฒเซ‡เช•เซเชŸเชฐ เชธเชพเชฅเซ‡ เช†เชตเซเช‚ เชœ เชฅเชฏเซเช‚: เชธเชพเชฎเชพเชจเซเชฏ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เชจ เชนเชคเซ€. เชœเซ‹ เชคเชฎเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เช‡เชคเชฟเชนเชพเชธ เชชเชฐ เชเช• เชเชกเชชเซ€ เชจเชœเชฐ เชจเชพเช–เซ‹, เชคเซ‹ เช† เชธเชฎเชธเซเชฏเชพ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ werf เชจเชพ เชชเซเชฐเชฅเชฎ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡ (เชชเช›เซ€ เชนเชœเซ เชชเชฃ เชกเซ‡เชช เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชพเชฏ เช›เซ‡).

เชกเซ‹เช•เชฐ เชˆเชฎเซ‡เชœเซ€เชธเชฎเชพเช‚ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชŸเซ‚เชฒ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เช…เชฎเชจเซ‡ เชเชกเชชเชฅเซ€ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชกเซ‹เช•เชฐเชซเชพเชˆเชฒ เช…เชฎเซเช• เชšเซ‹เช•เซเช•เชธ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เชจเชฅเซ€:

  1. เชจเซ€เชšเซ‡เชจเซ€ เชฎเชพเชจเช• เชฏเซ‹เชœเชจเชพ เช…เชจเซเชธเชพเชฐ เชฒเชพเช•เซเชทเชฃเชฟเช• เชจเชพเชจเซ€ เชตเซ‡เชฌ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค:
    • เชธเชฟเชธเซเชŸเชฎ-เชตเซเชฏเชพเชชเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ‹,
    • เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชชเซเชธเซเชคเช•เชพเชฒเชฏเซ‹เชจเซเช‚ เชฌเช‚เชกเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹,
    • เชธเช‚เชชเชคเซเชคเชฟ เชญเซ‡เช—เซ€ เช•เชฐเชตเซ€,
    • เช…เชจเซ‡ เชธเซŒเชฅเซ€ เช…เช—เชคเซเชฏเชจเซเช‚, เช›เชฌเซ€เชจเชพ เช•เซ‹เชกเชจเซ‡ เชเชกเชชเชฅเซ€ เช…เชจเซ‡ เช…เชธเชฐเช•เชพเชฐเช• เชฐเซ€เชคเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‹.
  2. เชœเซเชฏเชพเชฐเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชฌเชฟเชฒเซเชกเชฐเซ‡ เชฌเชฆเชฒเชพเชฏเซ‡เชฒเซ€ เชซเชพเช‡เชฒเซ‹ เชชเชฐ เชชเซ‡เชš เชฒเชพเช—เซ เช•เชฐเซ€เชจเซ‡ เชเชกเชชเชฅเซ€ เชจเชตเซเช‚ เชธเซเชคเชฐ เชฌเชจเชพเชตเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡.
  3. เชœเซ‹ เช…เชฎเซเช• เชซเชพเชˆเชฒเซ‹ เชฌเชฆเชฒเชพเชˆ เช—เชˆ เชนเซ‹เชฏ, เชคเซ‹ เช…เชจเซเชฐเซ‚เชช เช†เชถเซเชฐเชฟเชค เชธเซเชŸเซ‡เชœเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.

เช†เชœเซ‡ เช†เชชเชฃเชพ เช•เชฒเซ‡เช•เซเชŸเชฐ เชชเชพเชธเซ‡ เชฌเซ€เชœเซ€ เช˜เชฃเซ€ เชถเช•เซเชฏเชคเชพเช“ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† เชถเชฐเซ‚เช†เชคเชจเซ€ เชˆเชšเซเช›เชพเช“ เช…เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชนเชคเซ€.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชฌเซ‡ เชตเชพเชฐ เชตเชฟเชšเชพเชฐเซเชฏเชพ เชตเชฟเชจเชพ, เช…เชฎเซ‡ เชœเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เช›เซ‡ เชคเซ‡เชจเชพเชฅเซ€ เช…เชฎเซ‡ เชชเซ‹เชคเชพเชจเซ‡ เชธเชœเซเชœ เช•เชฐเซ€เช เช›เซ€เช (เชจเซ€เชšเซ‡ เชœเซเช“) เช…เชจเซ‡ เช…เชฎเชฒ เชฎเชพเชŸเซ‡ เชฐเชธเซเชคเชพ เชชเชฐ เช‰เชคเชฐเซเชฏเชพ เชชเซ‹เชคเชพเชจเชพ DSL! เช‰เชฆเซเชฆเซ‡เชถเซเชฏเซ‹ เช…เชจเซเชธเชพเชฐ, เชคเซ‡เชจเซ‹ เชนเซ‡เชคเซ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชคเชฌเช•เซเช•เชพเชตเชพเชฐ เชตเชฐเซเชฃเชตเชตเชพเชจเซ‹ เช…เชจเซ‡ เชซเชพเช‡เชฒเซ‹ เชชเชฐเชจเชพ เช† เชคเชฌเช•เซเช•เชพเช“เชจเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชจเซ‹ เชนเชคเซ‹. เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชชเซ‚เชฐเช• เชฌเชจเชพเชตเซเชฏเซ‹ เชชเซ‹เชคเชพเชจเชพ เช•เชฒเซ‡เช•เซเชŸเชฐ, เชœเซ‡เชฃเซ‡ DSL เชจเซ‡ เช…เช‚เชคเชฟเชฎ เชงเซเชฏเซ‡เชฏเชฎเชพเช‚ เชซเซ‡เชฐเชตเซเชฏเซเช‚ - เชเชธเซ‡เชฎเซเชฌเชฒ เช‡เชฎเซ‡เชœ. เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชกเซ€เชเชธเชเชฒ เชฐเซ‚เชฌเซ€เชฎเชพเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชคเชฐเซ€เช•เซ‡ เช—เซ‹เชฒเชพเช‚เช—เชฎเชพเช‚ เชธเช‚เช•เซเชฐเชฎเชฃ โ€” เช…เชฎเชพเชฐเชพ เช•เชฒเซ‡เช•เซเชŸเชฐเชจเซเช‚ เชฐเซ‚เชชเชฐเซ‡เช–เชพ YAML เชซเชพเช‡เชฒเชฎเชพเช‚ เชตเชฐเซเชฃเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เชฅเชฏเซเช‚.

เชคเชฎเซ‡ เชนเชตเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ werf เชฎเชพเช‚ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹
เชฐเซ‚เชฌเซ€เชฎเชพเช‚ เชกเซ€เชเชชเซ€ เชฎเชพเชŸเซ‡ เชœเซ‚เชจเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพ

เชคเชฎเซ‡ เชนเชตเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ werf เชฎเชพเช‚ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹
YAML เชชเชฐ werf เชฎเชพเชŸเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชฐเซ‚เชชเชฐเซ‡เช–เชพ

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

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

เชธเชฎเชธเซเชฏเชพเชจเซ€ เชœเชพเช—เซƒเชคเชฟ

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

เช† เชชเซเชฐเชถเซเชจเชจเซ‹ เชœเชตเชพเชฌ เช†เชชเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เช…เชฎเซ‡ เชเช• เช‰เช•เซ‡เชฒ เช“เชซเชฐ เช•เชฐเซ€เช เช›เซ€เช. เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ Dockerfile (เช…เชฅเชตเชพ Dockerfiles เชจเซ‹ เชธเชฎเซ‚เชน) เชนเซ‹เชฏ เช…เชจเซ‡ เชคเชฎเซ‡ werf เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹เชต เชคเซ‹ เชถเซเช‚?

NB: เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชคเชฎเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ werf เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹? เชฎเซเช–เซเชฏ เชฒเช•เซเชทเชฃเซ‹ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช†เชตเซ‡ เช›เซ‡:

  • เช›เชฌเซ€ เชธเชซเชพเชˆ เชธเชนเชฟเชค เชธเช‚เชชเซ‚เชฐเซเชฃ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชšเช•เซเชฐ;
  • เชเช• เชœ เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚เชฅเซ€ เชเช• เชธเชพเชฅเซ‡ เช…เชจเซ‡เช• เช›เชฌเซ€เช“เชจเซ€ เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ;
  • เชนเซ‡เชฒเซเชฎ-เชธเซเชธเช‚เช—เชค เชšเชพเชฐเซเชŸ เชฎเชพเชŸเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เชœเชฎเชพเชตเชŸ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ.

เชคเซ‡เชฎเชจเซ€ เชตเชงเซ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซ‚เชšเชฟ เช…เชนเซ€เช‚ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเซƒเชทเซเช .

เชคเซ‡เชฅเซ€, เชœเซ‹ เช…เช—เชพเช‰ เช…เชฎเซ‡ เช…เชฎเชพเชฐเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพเชจเซ€ เช“เชซเชฐ เช•เชฐเซ€ เชนเซ‹เชค, เชคเซ‹ เชนเชตเซ‡ เช…เชฎเซ‡ เช–เซเชถเซ€เชฅเซ€ เช•เชนเซ€เชถเซเช‚: "เชคเชฎเชพเชฐเซ€ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเซเชธเชจเซ‡ เชฌเชจเชพเชตเชตเชพ เชฆเซ‹!"

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชชเชฐเชตเซเช‚?

เช† เชธเซเชตเชฟเชงเชพเชจเซ‹ เชธเช‚เชชเซ‚เชฐเซเชฃ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชชเซเชฐเช•เชพเชถเชจเชฎเชพเช‚ เชฆเซ‡เช–เชพเชฏเซ‹ werf v1.0.3-beta.1. เชธเชพเชฎเชพเชจเซเชฏ เชธเชฟเชฆเซเชงเชพเช‚เชค เชธเชฐเชณ เช›เซ‡: เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ werf เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚ เชนเชพเชฒเชจเซ€ เชกเซ‹เช•เชฐเชซเชพเชˆเชฒเชจเซ‹ เชฎเชพเชฐเซเช— เชธเซเชชเชทเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‡ เช›เซ‡ werf build... เช…เชจเซ‡ เชคเซ‡ เช›เซ‡ - เชตเชฐเซเชซ เช›เชฌเซ€เชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชถเซ‡. เชšเชพเชฒเซ‹ เชเช• เช…เชฎเซ‚เชฐเซเชค เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‹เชˆเช.

เชšเชพเชฒเซ‹ เชนเชตเซ‡ เชชเช›เซ€เชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ€เช Dockerfile เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฐเซเชŸเชฎเชพเช‚:

FROM ubuntu:18.04
RUN echo Building ...

เช…เชจเซ‡ เช…เชฎเซ‡ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ€เชถเซเช‚ werf.yamlเชœเซ‡ เช†เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ Dockerfile:

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

เชฌเชงเชพ! เชกเชพเชฌเซ€ เชšเชฒเชพเชตเซ‹ werf build:

เชคเชฎเซ‡ เชนเชตเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ werf เชฎเชพเช‚ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹

เชตเชงเซเชฎเชพเช‚, เชคเชฎเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ werf.yaml เชเช• เชธเชพเชฅเซ‡ เชตเชฟเชตเชฟเชง เชกเซ‹เช•เชฐเชซเชพเชˆเชฒเซเชธเชฎเชพเช‚เชฅเซ€ เช˜เชฃเซ€ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡:

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

เช›เซ‡เชฒเซเชฒเซ‡, เชคเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชฌเชฟเชฒเซเชก เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชชเชธเชพเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ --build-arg ะธ --add-host - werf เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชฆเซเชตเชพเชฐเชพ. เชกเซ‹เช•เชฐเชซเชพเช‡เชฒ เช‡เชฎเซ‡เชœ เช•เชจเซเชซเชฟเช—เชฐเซ‡เชถเชจเชจเซเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชตเชฐเซเชฃเชจ เช…เชนเซ€เช‚ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชชเซƒเชทเซเช .

เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡?

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

  1. เชกเซ‹เช•เชฐเชซเชพเชˆเชฒเชฎเชพเช‚เชฅเซ€ เชฌเชจเซ‡เชฒเซ€ เชฆเชฐเซ‡เช• เชˆเชฎเซ‡เชœเชฎเชพเช‚ เชเช• เชธเซเชŸเซ‡เชœ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡ dockerfile (Werf เชฎเชพเช‚ เช•เชฏเชพ เชคเชฌเช•เซเช•เชพเช“ เช›เซ‡ เชคเซ‡ เชตเชฟเชถเซ‡ เชคเชฎเซ‡ เชตเชงเซ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚).
  2. เชธเซเชŸเซ‡เชœ เชฎเชพเชŸเซ‡ dockerfile werf เชเช• เชนเชธเซเชคเชพเช•เซเชทเชฐเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ Dockerfile เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชธเซเชŸเซ‡เชœ เชธเชฟเช—เซเชจเซ‡เชšเชฐ เชฌเชฆเชฒเชพเชฏ เช›เซ‡ dockerfile เช…เชจเซ‡ werf เชจเชตเชพ เชกเซ‹เช•เชฐเชซเชพเชˆเชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชธเชพเชฅเซ‡ เช† เชคเชฌเช•เซเช•เชพเชจเซเช‚ เชชเซเชจเชƒเชจเชฟเชฐเซเชฎเชพเชฃ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชธเชนเซ€ เชฌเชฆเชฒเชพเชคเซ€ เชจเชฅเซ€, เชคเซ‹ เชตเชฐเซเชซ เช•เซ‡เชถเชฎเชพเช‚เชฅเซ€ เช›เชฌเซ€ เชฒเซ‡ เช›เซ‡ (เชตเชฐเซเชซเชฎเชพเช‚ เชนเชธเซเชคเชพเช•เซเชทเชฐเชจเชพ เช‰เชชเชฏเซ‹เช— เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชฟเช—เชคเซ‹ เช†เชฎเชพเช‚ เชตเชฐเซเชฃเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช† เช…เชนเซ‡เชตเชพเชฒ).
  3. เช†เช—เชณ, เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‡เชฒเซ€ เช›เชฌเซ€เช“ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ werf publish (เช…เชฅเชตเชพ werf build-and-publish) เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเชฐ เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡ เช•เชฐเซ‹. เชกเซ‹เช•เชฐ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ‡เชฒเซ€ เช›เชฌเซ€เช“เชจเซ‡ เชฎเชพเชจเช• เชตเซ‡เชฐเซเชซ เช•เซเชฒเชฟเชจเช…เชช เชŸเซ‚เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชพเชซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชœเซ‚เชจเซ€ เช›เชฌเซ€เช“ (N เชฆเชฟเชตเชธ เช•เชฐเชคเชพเช‚ เชœเซ‚เชจเซ€), เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเซ€ Git เชถเชพเช–เชพเช“ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซ€ เช›เชฌเซ€เช“ เช…เชจเซ‡ เช…เชจเซเชฏ เชจเซ€เชคเชฟเช“ เช†เชชเชฎเซ‡เชณเซ‡ เชธเชพเชซ เชฅเชˆ เชœเชถเซ‡.

เช…เชนเซ€เช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เชฎเซเชฆเซเชฆเชพเช“ เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชฟเช—เชคเซ‹ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡:

เชจเซ‹เช‚เชงเซ‹ เช…เชจเซ‡ เชธเชพเชตเชšเซ‡เชคเซ€เช“

1. เชฌเชพเชนเซเชฏ URL ADD เชฎเชพเช‚ เชธเชฎเชฐเซเชฅเชฟเชค เชจเชฅเซ€

เชนเชพเชฒเชฎเชพเช‚ เชคเซ‡ เชจเชฟเชฐเซเชฆเซ‡เชถเชฎเชพเช‚ เชฌเชพเชนเซเชฏ URL เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชฟเชค เชจเชฅเซ€ ADD. เชœเซเชฏเชพเชฐเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค URL เชชเชฐเชจเซ‹ เชธเช‚เชธเชพเชงเชจ เชฌเชฆเชฒเชพเชถเซ‡ เชคเซเชฏเชพเชฐเซ‡ Werf เชชเซเชจเชƒเชจเชฟเชฐเซเชฎเชพเชฃ เชถเชฐเซ‚ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚. เช…เชฎเซ‡ เชŸเซ‚เช‚เช• เชธเชฎเชฏเชฎเชพเช‚ เช† เชธเซเชตเชฟเชงเชพ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชฌเชจเชพเชตเซ€เช เช›เซ€เช.

2. เชคเชฎเซ‡ เชˆเชฎเซ‡เชœเชฎเชพเช‚ .git เช‰เชฎเซ‡เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เชนเซ€เช เชคเซ‹, เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ .git เช›เชฌเซ€เชฎเชพเช‚ - เชเช• เชชเชพเชชเซ€ เช–เชฐเชพเชฌ เชชเซเชฐเชฅเชพ เช…เชจเซ‡ เช…เชนเซ€เช‚ เชถเชพ เชฎเชพเชŸเซ‡ เช›เซ‡:

  1. เชœเซ‹ .git เช…เช‚เชคเชฟเชฎ เช›เชฌเซ€เชฎเชพเช‚ เชฐเชนเซ‡ เช›เซ‡, เช† เชธเชฟเชฆเซเชงเชพเช‚เชคเซ‹เชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เช•เชฐเซ‡ เช›เซ‡ 12 เชชเชฐเชฟเชฌเชณ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ: เช…เช‚เชคเชฟเชฎ เชˆเชฎเซ‡เชœ เชเช• เชœ เช•เชฎเชฟเชŸ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เชคเซ‡ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เชจ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช git checkout เชฎเชจเชธเซเชตเซ€ เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพ.
  2. .git เช‡เชฎเซ‡เชœเชจเซเช‚ เช•เชฆ เชตเชงเซ‡ เช›เซ‡ (เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เช เชนเช•เซ€เช•เชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชฎเซ‹เชŸเซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชฎเซ‹เชŸเซ€ เชซเชพเช‡เชฒเซ‹ เชเช•เชตเชพเชฐ เชคเซ‡เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช…เชจเซ‡ เชชเช›เซ€ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€). เชฎเชพเชคเซเชฐ เชšเซ‹เช•เซเช•เชธ เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เชตเชฐเซเช•-เชŸเซเชฐเซ€เชจเซเช‚ เช•เชฆ Git เชฎเชพเช‚ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเชพ เช‡เชคเชฟเชนเชพเชธ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช‰เชฎเซ‡เชฐเชพ เช…เชจเซ‡ เช…เชจเซเช—เชพเชฎเซ€ เชฆเซ‚เชฐ .git เช…เช‚เชคเชฟเชฎ เช›เชฌเซ€เชฅเซ€ เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚: เช›เชฌเซ€ เชนเชœเซ€ เชชเชฃ เชเช• เชตเชงเชพเชฐเชพเชจเซเช‚ เชธเซเชคเชฐ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชถเซ‡ - เช† เชฐเซ€เชคเซ‡ เชกเซ‹เช•เชฐ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡.
  3. เชกเซ‹เช•เชฐ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชชเซเชจเชƒเชจเชฟเชฐเซเชฎเชพเชฃ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชญเชฒเซ‡ เชคเซ‡ เชœ เช•เชฎเชฟเชŸ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซ€ เชนเซ‹เชฏ, เชชเชฐเช‚เชคเซ เชตเชฟเชตเชฟเชง เชตเชฐเซเช•-เชŸเซเชฐเซ€เชฅเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, GitLab เชฎเชพเช‚ เช…เชฒเช— เช•เซเชฒเซ‹เชจ เช•เชฐเซ‡เชฒเซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เชฌเชจเชพเชตเซ‡ เช›เซ‡ /home/gitlab-runner/builds/HASH/[0-N]/yourproject เชœเซเชฏเชพเชฐเซ‡ เชธเชฎเชพเช‚เชคเชฐ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชธเช•เซเชทเชฎ เชนเซ‹เชฏ. เชตเชงเชพเชฐเชพเชจเซ€ เชซเชฐเซ€เชฅเซ€ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เช เชนเช•เซ€เช•เชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชนเชถเซ‡ เช•เซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ .git เช เชœ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ€ เชตเชฟเชตเชฟเชง เช•เซเชฒเซ‹เชจ เช•เชฐเซ‡เชฒ เช†เชตเซƒเชคเซเชคเชฟเช“เชฎเชพเช‚ เช…เชฒเช— เช›เซ‡, เชญเชฒเซ‡ เชคเซ‡ เชœ เช•เชฎเชฟเชŸ เชฌเชจเซ‡เชฒ เชนเซ‹เชฏ.

werf เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช›เซ‡เชฒเซเชฒเชพ เชฌเชฟเช‚เชฆเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชชเชฃ เช›เซ‡. Werf เชจเซ‡ เช…เชฎเซเช• เช†เชฆเซ‡เชถเซ‹ เชšเชฒเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชฌเชฟเชฒเซเชŸ เช•เซ‡เชถ เชนเชพเชœเชฐ เชนเซ‹เชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ (เชฆเชพ.เชค. werf deploy). เชœเซเชฏเชพเชฐเซ‡ เช† เช†เชฆเซ‡เชถเซ‹ เชšเชพเชฒเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ werf เชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชˆเชฎเซ‡เชœเซ‹ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เชœ เชธเชฟเช—เซเชจเซ‡เชšเชฐเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡ werf.yaml, เช…เชจเซ‡ เชคเซ‡เช“ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เช•เซ‡เชถเชฎเชพเช‚ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช - เช…เชจเซเชฏเชฅเชพ เช†เชฆเซ‡เชถ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ€ เชถเช•เชถเซ‡ เชจเชนเซ€เช‚. เชœเซ‹ เชธเซเชŸเซ‡เชœ เชนเชธเซเชคเชพเช•เซเชทเชฐ เชธเชพเชฎเช—เซเชฐเซ€ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡ .git, เชชเช›เซ€ เช…เชฎเชจเซ‡ เชเช• เช•เซ‡เชถ เชฎเชณเซ‡ เช›เซ‡ เชœเซ‡ เช…เชชเซเชฐเชธเซเชคเซเชค เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฎเชพเชŸเซ‡ เช…เชธเซเชฅเชฟเชฐ เช›เซ‡, เช…เชจเซ‡ werf เช†เชตเซ€ เช…เชตเช—เชฃเชจเชพเชจเซ‡ เชฎเชพเชซ เช•เชฐเซ€ เชถเช•เชถเซ‡ เชจเชนเซ€เช‚ (เชตเชงเซ เชตเชฟเช—เชคเซ‹ เชฎเชพเชŸเซ‡, เชœเซเช“ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ).

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฎเชพเชคเซเชฐ เช…เชฎเซเช• เชœเชฐเซ‚เชฐเซ€ เชซเชพเชˆเชฒเซ‹ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡ เชธเซ‚เชšเชจเชพเช“ เชฆเซเชตเชพเชฐเชพ ADD เช•เซ‹เชˆเชชเชฃ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชฒเซ‡เช–เชฟเชคเชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช…เชจเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏเชคเชพ เชตเชงเซ‡ เช›เซ‡ Dockerfile, เช…เชจเซ‡ เช† เชฎเชพเชŸเซ‡ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‡เชฒ เช•เซ‡เชถเชจเซ€ เชธเซเชฅเชฟเชฐเชคเชพ เชชเชฃ เชธเซเชงเชพเชฐเซ‡ เช›เซ‡ Dockerfile, Git เชฎเชพเช‚ เช…เชชเซเชฐเชธเซเชคเซเชค เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฎเชพเชŸเซ‡.

เชชเชฐเชฟเชฃเชพเชฎ

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

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

เชคเซ‡เชฅเซ€, เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช…เชšเชพเชจเช• เชฌเซ‡ เชกเซ‹เช•เชฐเชซเชพเชˆเชฒเซเชธ เชชเชกเซ‡เชฒเซ€ เชนเซ‹เชฏ เชคเซ‹... เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹ เชตเชฐเซเชซ!

เชชเซ€เชเชธ เชตเชฟเชทเชฏ เชชเชฐเชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชจเซ€ เชธเซ‚เชšเชฟ

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช—เชฎเชพเช‚ เชชเชฃ เชตเชพเช‚เชšเซ‹: โ€œwerf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)ยป.

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

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