เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจซ เจตเจฟเฉฑเจš เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹

เจ•เจฆเฉ‡ เจจเจพเจฒเฉ‹เจ‚ เจฆเฉ‡เจฐ เจจเจพเจฒเฉ‹เจ‚ เจฌเจฟเจนเจคเจฐเฅค เจœเจพเจ‚ เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจจเจฟเจฏเจฎเจค เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจจเจพ เจ•เจฐเจ•เฉ‡ เจฒเจ—เจญเจ— เจ‡เฉฑเจ• เจ—เฉฐเจญเฉ€เจฐ เจ—เจฒเจคเฉ€ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจซ เจตเจฟเฉฑเจš เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹

เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡ werf โ€” GitOps เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจœเฉ‹ เจ•เจฟเจธเฉ‡ เจตเฉ€ CI/CD เจธเจฟเจธเจŸเจฎ เจจเจพเจฒ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจชเฉ‚เจฐเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจพเจˆเจซเจธเจพเจˆเจ•เจฒ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ:

  • เจšเจฟเฉฑเจคเจฐ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเฉ‹,
  • เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเฉ‹,
  • เจตเจฟเจธเจผเฉ‡เจธเจผ เจจเฉ€เจคเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจฃเจตเจฐเจคเฉ€เจ†เจ‚ เจคเจธเจตเฉ€เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ“เฅค


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

เจชเจฟเจ›เฉ‹เจ•เฉœ: เจคเฉเจนเจพเจกเจพ เจ†เจชเจฃเจพ เจšเจฟเฉฑเจคเจฐ เจ•เฉเจฒเฉˆเจ•เจŸเจฐ

เจตเจฐเจซ เจตเจฟเฉฑเจš เจšเจฟเฉฑเจคเจฐ เจ•เฉเจฒเฉˆเจ•เจŸเจฐ เจจเจพเจฒ เจ‡เจนเฉ€ เจตเจพเจชเจฐเจฟเจ†: เจ†เจฎ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจธเจพเจกเฉ‡ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจ‡เจคเจฟเจนเจพเจธ 'เจคเฉ‡ เจ‡เฉฑเจ• เจเจพเจค เจฎเจพเจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจธเจฎเฉฑเจธเจฟเจ† เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ werf เจฆเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจˆ เจธเฉ€ (เจซเจฟเจฐ เจ…เจœเฉ‡ เจตเฉ€ dapp เจตเจœเฉ‹เจ‚ เจœเจพเจฃเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ).

เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจŸเฉ‚เจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจœเจฒเจฆเฉ€ เจนเฉ€ เจฎเจนเจฟเจธเฉ‚เจธ เจ•เฉ€เจคเจพ เจ•เจฟ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจ•เฉเจ เจ–เจพเจธ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจธเจพเจกเฉ‡ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจธเฉ€:

  1. เจจเจฟเจฎเจจเจฒเจฟเจ–เจค เจฎเจฟเจ†เจฐเฉ€ เจธเจ•เฉ€เจฎ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจ†เจฎ เจ›เฉ‹เจŸเฉ‡ เจตเฉˆเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค:
    • เจธเจฟเจธเจŸเจฎ-เจตเจฟเจ†เจชเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹,
    • เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเจฟเจฐเจญเจฐเจคเจพ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเจพ เจ‡เฉฑเจ• เจฌเฉฐเจกเจฒ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹,
    • เจœเจพเจ‡เจฆเจพเจฆ เจ‡เจ•เฉฑเจ เฉ€ เจ•เจฐเฉ‹,
    • เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ, เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจœเจฒเจฆเฉ€ เจ…เจคเฉ‡ เจ•เฉเจธเจผเจฒเจคเจพ เจจเจพเจฒ เจ…เจชเจกเฉ‡เจŸ เจ•เจฐเฉ‹เฅค
  2. เจœเจฆเฉ‹เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจคเจพเจ‚ เจฌเจฟเจฒเจกเจฐ เจจเฉ‚เฉฐ เจฌเจฆเจฒเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉˆเจš เจฒเจ—เจพ เจ•เฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจชเจฐเจค เจฌเจฃเจพเจ‰เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค
  3. เจœเฉ‡ เจ•เฉเจ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฆเจฒ เจ—เจˆเจ†เจ‚ เจนเจจ, เจคเจพเจ‚ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจจเจฟเจฐเจญเจฐ เจชเฉœเจพเจ… เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ.

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

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฌเจฟเจจเจพเจ‚ เจฆเฉ‹ เจตเจพเจฐ เจธเฉ‹เจšเฉ‡, เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจ—เฉเจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจจเจพเจฒ เจฒเฉˆเจธ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจตเจฐเจคเฉ€ เจธเฉ€ (เจจเฉ€เจšเฉ‡ เจฆเฉ‡เจ–เฉ‹) เจ…เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจธเฉœเจ• เจนเจฟเฉฑเจŸ เจ†เจชเจฃเจพ DSL! เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ‡เจธเจฆเจพ เจ‰เจฆเฉ‡เจธเจผ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจชเฉœเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจซเจพเจˆเจฒเจพเจ‚ เจ‰เฉฑเจคเฉ‡ เจ‡เจนเจจเจพเจ‚ เจชเฉœเจพเจตเจพเจ‚ เจฆเฉ€ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจเจพ เจธเฉ€เฅค เจ…เจคเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจ• เจ•เฉ€เจคเจพ เจ†เจชเจฃเจพ เจ•เฉเจฒเฉˆเจ•เจŸเจฐ, เจœเจฟเจธ เจจเฉ‡ DSL เจจเฉ‚เฉฐ เจ…เฉฐเจคเจฟเจฎ เจŸเฉ€เจšเฉ‡ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ - เจ‡เฉฑเจ• เจ‡เจ•เฉฑเจ เฉ€ เจ•เฉ€เจคเฉ€ เจคเจธเจตเฉ€เจฐเฅค เจชเจนเจฟเจฒเจพเจ‚ เจกเฉ€เจเจธเจเจฒ เจฐเฉ‚เจฌเฉ€ เจตเจฟเฉฑเจš เจธเฉ€, เจชเจฐ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ—เฉ‹เจฒเฉฐเจ— เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€ โ€” เจธเจพเจกเฉ‡ เจ•เฉเจฒเฉˆเจ•เจŸเจฐ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ‡เฉฑเจ• YAML เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เฉ€เจคเฉ€ เจœเจพเจฃเฉ€ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจ—เจˆ เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจซ เจตเจฟเฉฑเจš เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹
เจฐเฉ‚เจฌเฉ€ เจตเจฟเฉฑเจš เจกเฉˆเจช เจฒเจˆ เจชเฉเจฐเจพเจฃเฉ€ เจธเฉฐเจฐเจšเจจเจพ

เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจซ เจตเจฟเฉฑเจš เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹
YAML 'เจคเฉ‡ werf เจฒเจˆ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเฉฐเจฐเจšเจจเจพ

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

NB: เจ‡เจธ เจธเจฎเฉ‡เจ‚, เจธเจพเจกเจพ เจ•เฉเจฒเฉˆเจ•เจŸเจฐ, เจœเฉ‹ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ (YAML เจตเจฟเฉฑเจš) เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจธเจŸเฉˆเจชเจฒ เจ•เฉเจฒเฉˆเจ•เจŸเจฐ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เฉฑเจ• เจ•เจพเจซเจผเฉ€ เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจŸเฉ‚เจฒ เจตเจฟเฉฑเจš เจตเจฟเจ•เจธเจค เจนเฉ‹ เจšเฉเฉฑเจ•เจพ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเจฐเจฃเจจ เจตเฉฑเจ–เจฐเฉ‡ เจฒเฉ‡เจ–เจพเจ‚ เจฆเจพ เจนเฉฑเจ•เจฆเจพเจฐ เจนเฉˆ, เจ…เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจตเฉ‡เจฐเจตเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจชเจพเจ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ.

เจธเจฎเฉฑเจธเจฟเจ† เจฌเจพเจฐเฉ‡ เจœเจพเจ—เจฐเฉ‚เจ•เจคเจพ

เจชเจฐ เจธเจพเจจเฉ‚เฉฐ เจ…เจนเจฟเจธเจพเจธ เจนเฉ‹เจ‡เจ†, เจ…เจคเฉ‡ เจคเฉเจฐเฉฐเจค เจจเจนเฉ€เจ‚, เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจ•เฉ€เจคเฉ€ เจธเฉ€: เจ…เจธเฉ€เจ‚ เจฏเฉ‹เจ—เจคเจพ เจจเจนเฉ€เจ‚ เจœเฉ‹เฉœเฉ€ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฆเฉเจ†เจฐเจพ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ“ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจธเฉ‡ เจเจ‚เจก-เจŸเฉ‚-เจเจ‚เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจตเจฟเฉฑเจš เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจ•เจฐเฉ‹ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจšเจฟเฉฑเจคเจฐ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเฉ‹, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจธเจพเจซเจผ เจ•เจฐเฉ‹)เฅค เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจคเฉ€ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจธเจนเจพเจ‡เจคเจพ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจจเจพ เจ•เจฐเจจเจพ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจฏเจพเจจเฉ€. เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจฒเจˆ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฆเจพ เจฎเจฟเจ†เจฐเฉ€ เจคเจฐเฉ€เจ•เจพ? ..

เจ‡เจธ เจธเจตเจพเจฒ เจฆเจพ เจœเจตเจพเจฌ เจฆเฉ‡เจฃ เจฆเฉ€ เจฌเจœเจพเจ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจนเฉฑเจฒ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚. เจ‰เจฆเฉ‹เจ‚ เจ•เฉ€ เจœเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เฉฑเจ• เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ (เจœเจพเจ‚ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน) เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจตเจฐเจซ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹?

NB: เจตเฉˆเจธเฉ‡, เจคเฉเจธเฉ€เจ‚ เจตเจฐเจซ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจ‰เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉ‹เจ—เฉ‡? เจฎเฉเฉฑเจ– เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจ:

  • เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจธเจซเจพเจˆ เจธเจฎเฉ‡เจค เจชเฉ‚เจฐเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจชเฉเจฐเจฌเฉฐเจงเจจ เจšเฉฑเจ•เจฐ;
  • เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจธเฉฐเจฐเจšเจจเจพ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเจพเจฐ เจตเจฟเฉฑเจš เจ•เจˆ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเฉ€ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ;
  • เจนเฉˆเจฒเจฎ-เจ…เจจเฉเจ•เฉ‚เจฒ เจšเจพเจฐเจŸเจพเจ‚ เจฒเจˆ เจธเฉเจงเจพเจฐเฉ€ เจคเฉˆเจจเจพเจคเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เฅค

เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจชเฉ‚เจฐเฉ€ เจธเฉ‚เจšเฉ€ เจ‡เฉฑเจฅเฉ‡ เจฒเฉฑเจญเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจชเฉฐเจจเจพ.

เจ‡เจธ เจฒเจˆ, เจœเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เฉ€เจคเฉ€ เจนเฉเฉฐเจฆเฉ€, เจคเจพเจ‚ เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจ–เฉเจธเจผเฉ€ เจจเจพเจฒ เจ•เจนเจพเจ‚เจ—เฉ‡: "เจตเจฐเจซ เจจเฉ‚เฉฐ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเจฟเจ“!"

เจ•เจฟเจธ เจจเฉ‚เฉฐ เจตเจฐเจคเจฃ เจฒเจˆ?

เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเจพ เจชเฉ‚เจฐเจพ เจ…เจฎเจฒ เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ† werf v1.0.3-beta.1. เจ†เจฎ เจธเจฟเจงเจพเจ‚เจค เจธเจงเจพเจฐเจจ เจนเฉˆ: เจ‰เจชเจญเฉ‹เจ—เจคเจพ werf เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฎเฉŒเจœเฉ‚เจฆเจพ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฆเจพ เจฎเจพเจฐเจ— เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ•เจฎเจพเจ‚เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ werf build... เจ…เจคเฉ‡ เจ‡เจน เจนเฉ€ เจนเฉˆ - werf เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเฉ‡เจ—เจพ. เจ†เจ“ เจ‡เฉฑเจ• เจ…เจฎเฉ‚เจฐเจค เจ‰เจฆเจพเจนเจฐเจจ เจตเฉ‡เจ–เฉ€เจเฅค

เจ†เจ“ เจ…เจ—เจฒเฉ‡ เจฆเจพ เจเจฒเจพเจจ เจ•เจฐเฉ€เจ Dockerfile เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฐเฉ‚เจŸ เจตเจฟเฉฑเจš:

FROM ubuntu:18.04
RUN echo Building ...

เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ˜เฉ‹เจธเจผเจฃเจพ เจ•เจฐเจพเจ‚เจ—เฉ‡ werf.yamlเจœเฉ‹ เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ Dockerfile:

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

เจธเจพเจฐเฉ‡! เจ–เฉฑเจฌเฉ‡ เจฐเจจ werf build:

เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจซ เจตเจฟเฉฑเจš เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจเจฒเจพเจจ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ 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 เจ…เจคเฉ‡ werf เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจธเฉฐเจฐเจšเจจเจพ เจจเจพเจฒ เจ‡เจธ เจชเฉœเจพเจ… เจฆเฉ‡ เจฎเฉเฉœ เจจเจฟเจฐเจฎเจพเจฃ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจฆเจธเจคเจ–เจค เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ werf เจ•เฉˆเจธเจผ เจคเฉ‹เจ‚ เจšเจฟเฉฑเจคเจฐ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ (werf เจตเจฟเฉฑเจš เจฆเจธเจคเจ–เจคเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฌเจพเจฐเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจตเฉ‡เจฐเจตเฉ‡ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ เจ‡เจธ เจฐเจฟเจชเฉ‹เจฐเจŸ).
  3. เจ…เฉฑเจ—เฉ‡, เจ‡เจ•เฉฑเจ เฉ€เจ†เจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจคเจธเจตเฉ€เจฐเจพเจ‚ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ werf publish (เจœ werf build-and-publish) เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจคเฉ€ เจฒเจˆ เจ•เจฐเฉ‹เฅค เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจตเจฐเจซ เจ•เจฒเฉ€เจจเจ…เจช เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจพเจซเจผ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเฉเจฐเจพเจฃเฉ€เจ†เจ‚ เจคเจธเจตเฉ€เจฐเจพเจ‚ (N เจฆเจฟเจจเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจชเฉเจฐเจพเจฃเฉ€เจ†เจ‚), เจ—เฉˆเจฐ-เจฎเฉŒเจœเฉ‚เจฆ เจ—เจฟเจŸ เจธเจผเจพเจ–เจพเจตเจพเจ‚ เจจเจพเจฒ เจธเจฌเฉฐเจงเจฟเจค เจšเจฟเฉฑเจคเจฐ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจจเฉ€เจคเฉ€เจ†เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจธเจพเจซเจผ เจนเฉ‹ เจœเจพเจฃเจ—เฉ€เจ†เจ‚เฅค

เจ‡เฉฑเจฅเฉ‡ เจตเจฐเจฃเจฟเจค เจฌเจฟเฉฐเจฆเฉ‚เจ†เจ‚ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจตเจฟเฉฑเจš เจฒเฉฑเจญเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ:

เจจเฉ‹เจŸเจธ เจ…เจคเฉ‡ เจธเจพเจตเจงเจพเจจเฉ€เจ†เจ‚

1. เจฌเจพเจนเจฐเฉ€ URL ADD เจตเจฟเฉฑเจš เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ

เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจ‡เจน เจ‡เฉฑเจ• เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ URL เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ ADD. เจœเจฆเฉ‹เจ‚ เจจเจฟเจธเจผเจšเจฟเจค URL 'เจคเฉ‡ เจธเจฐเฉ‹เจค เจฌเจฆเจฒเจฆเจพ เจนเฉˆ เจคเจพเจ‚ Werf เจฎเฉเฉœ เจจเจฟเจฐเจฎเจพเจฃ เจธเจผเฉเจฐเฉ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค เจ…เจธเฉ€เจ‚ เจœเจฒเจฆเฉ€ เจนเฉ€ เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพ เจฐเจนเฉ‡ เจนเจพเจ‚เฅค

2. เจคเฉเจธเฉ€เจ‚ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš .git เจธเจผเจพเจฎเจฒ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจœเฉ‹เฉœเจจเจพ .git เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš - เจ‡เฉฑเจ• เจฌเฉเจฐเจพ เจญเฉˆเฉœเจพ เจ…เจญเจฟเจ†เจธ เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจ•เจฟเจ‰เจ‚ เจนเฉˆ:

  1. เจœเฉ‡ .git เจ…เฉฐเจคเจฎ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจธเจฟเจงเจพเจ‚เจคเจพเจ‚ เจฆเฉ€ เจ‰เจฒเฉฐเจ˜เจฃเจพ เจ•เจฐเจฆเจพ เจนเฉˆ 12 เจซเฉˆเจ•เจŸเจฐ เจเจช: เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เฉฐเจคเจฟเจฎ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจ•เจฎเจฟเจŸ เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ git checkout เจ†เจชเจนเฉเจฆเจฐเฉ€ เจตเจšเจจเจฌเฉฑเจงเจคเจพ.
  2. .git เจšเจฟเฉฑเจคเจฐ เจฆเจพ เจ†เจ•เจพเจฐ เจตเจงเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ (เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจ•เจพเจฐเจจ เจตเฉฑเจกเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจตเฉฑเจกเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจพเจฐ เจ‡เจธ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ…เจคเฉ‡ เจซเจฟเจฐ เจนเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€)เฅค เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจ–เจพเจธ เจตเจšเจจเจฌเฉฑเจงเจคเจพ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจ‡เฉฑเจ• เจตเจฐเจ•-เจŸเจฐเฉ€ เจฆเจพ เจ†เจ•เจพเจฐ เจ—เจฟเฉฑเจŸ เจตเจฟเฉฑเจš เจธเฉฐเจšเจพเจฒเจจ เจฆเฉ‡ เจ‡เจคเจฟเจนเจพเจธ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจœเฉ‹เฉœ เจ…เจคเฉ‡ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจนเจŸเจพเจ‰เจฃเจพ .git เจ…เฉฐเจคเจฎ เจšเจฟเฉฑเจคเจฐ เจคเฉ‹เจ‚ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพ: เจšเจฟเฉฑเจคเจฐ เจ…เจœเฉ‡ เจตเฉ€ เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจชเจฐเจค เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‡เจ—เจพ - เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจกเฉŒเจ•เจฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ.
  3. เจกเฉŒเจ•เจฐ เจ‡เฉฑเจ• เจฌเฉ‡เจฒเฉ‹เฉœเฉ€ เจชเฉเจจเจฐ-เจจเจฟเจฐเจฎเจพเจฃ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ‰เจนเฉ€ เจ•เจฎเจฟเจŸ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจฐเจฟเจนเจพ เจนเฉ‹เจตเฉ‡, เจชเจฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจฐเจ•-เจŸเจฐเฉ€ เจคเฉ‹เจ‚เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, GitLab เจตเฉฑเจ–-เจตเฉฑเจ– เจ•เจฒเฉ‹เจจ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ /home/gitlab-runner/builds/HASH/[0-N]/yourproject เจœเจฆเฉ‹เจ‚ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจธเจฎเจฐเฉฑเจฅ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจตเจพเจงเฉ‚ reassembly เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจ•เจพเจฐเจจ เจนเฉ‹เจตเฉ‡เจ—เจพ เจ•เจฟ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ .git เจ‡เฉฑเจ•เฉ‹ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจ•เจฒเฉ‹เจจ เจ•เฉ€เจคเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฑเจ–เจฐเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ‰เจนเฉ€ เจ•เจฎเจฟเจŸ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉ‹เจตเฉ‡เฅค

เจตเจฐเจซ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ†เจ–เจฐเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ เจฆเฉ‡ เจตเฉ€ เจจเจคเฉ€เจœเฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค Werf เจจเฉ‚เฉฐ เจ•เฉเจ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจšเจฒเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ เจฌเจฟเจฒเจŸ เจ•เฉˆเจธเจผ เจฎเฉŒเจœเฉ‚เจฆ เจนเฉ‹เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ (เจ‰เจฆเจพ. werf deploy). เจœเจฆเฉ‹เจ‚ เจ‡เจน เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจšเฉฑเจฒเจฆเฉ€เจ†เจ‚ เจนเจจ, werf เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฒเจˆ เจชเฉœเจพเจ… เจฆเฉ‡ เจฆเจธเจคเจ–เจคเจพเจ‚ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจฆเจพ เจนเฉˆ werf.yaml, เจ…เจคเฉ‡ เจ‰เจน เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš เจนเฉ‹เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ - เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจ•เจฎเจพเจ‚เจก เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจœเฉ‡ เจธเจŸเฉ‡เจœ เจนเจธเจคเจพเจ–เจฐ เจธเจฎเฉฑเจ—เจฐเฉ€ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ .git, เจซเจฟเจฐ เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เฉˆเจธเจผ เจฎเจฟเจฒเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ…เจชเฉเจฐเจธเฉฐเจ—เจฟเจ• เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฒเจˆ เจ…เจธเจฅเจฟเจฐ เจนเฉˆ, เจ…เจคเฉ‡ werf เจ…เจœเจฟเจนเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจจเฉ‚เฉฐ เจฎเฉเจ†เจซ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ (เจตเจงเฉ‡เจฐเฉ‡ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจฒเจˆ, เจตเฉ‡เจ–เฉ‹ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ).

เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡ เจธเจฟเจฐเจซเจผ เจ•เฉเจ เจœเจผเจฐเฉ‚เจฐเฉ€ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจเจพ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจฆเฉเจ†เจฐเจพ ADD เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจค เจฆเฉ€ เจ•เฉเจธเจผเจฒเจคเจพ เจ…เจคเฉ‡ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ Dockerfile, เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเฉ‡ เจ•เฉˆเจธเจผ เจฆเฉ€ เจธเจฅเจฟเจฐเจคเจพ เจจเฉ‚เฉฐ เจตเฉ€ เจธเฉเจงเจพเจฐเจฆเจพ เจนเฉˆ Dockerfile, Git เจตเจฟเฉฑเจš เจ…เจชเฉเจฐเจธเฉฐเจ—เจฟเจ• เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฒเจˆเฅค

เจจเจคเฉ€เจœเจพ

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

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

เจ‡เจธ เจฒเจˆ, เจœเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ…เจšเจพเจจเจ• เจ•เฉเจ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒเจพเจ‚ เจชเจˆเจ†เจ‚ เจนเจจ ... เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹ werf!

PS เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€

เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— เจตเจฟเฉฑเจš เจตเฉ€ เจชเฉœเฉเจนเฉ‹: "werf - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš CI / CD เจฒเจˆ เจธเจพเจกเจพ เจŸเฉ‚เจฒ (เจธเฉฐเจ–เฉ‡เจช เจ…เจคเฉ‡ เจตเฉ€เจกเฉ€เจ“ เจฐเจฟเจชเฉ‹เจฐเจŸ)".

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

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