เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เตพ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต†เตผเดซเดฟเตฝ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเด‚

เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดตเตˆเด•เตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดจเดฒเตเดฒเดคเต. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดฎเต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเตเด•เตพเด•เตเด•เต เดชเดฟเดจเตเดคเตเดฃเดฏเดฟเดฒเตเดฒเดพเดคเต† เดžเด™เตเด™เตพ เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เด—เตเดฐเตเดคเดฐเดฎเดพเดฏ เดคเต†เดฑเตเดฑเต เดตเดฐเตเดคเตเดคเดฟเดฏเดคเต.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เตพ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต†เตผเดซเดฟเตฝ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเด‚

เดจเดฎเตเดฎเตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚ เดตเต†เตผเดซเต โ€” GitOps เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ CI/CD เดธเดฟเดธเตเดฑเตเดฑเดตเตเดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฎเตเดดเตเดตเตป เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฒเตˆเดซเต เดธเตˆเด•เตเด•เดฟเดณเดฟเดจเตเดฑเต† เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด‡เดคเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต:

  • เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•,
  • เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•,
  • เดชเตเดฐเดคเตเดฏเต‡เด• เดจเดฏเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค เดšเดฟเดคเตเดฐเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•.


DevOps เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผเด•เตเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเตฝ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เดจเตฝเด•เตเดจเตเดจ เด’เดฐเต เดเด•เต€เด•เตƒเดค เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดคเดพเดดเตเดจเตเดจ-เดฒเต†เดตเตฝ เดŸเต‚เดณเตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดคเดคเตเดตเดถเดพเดธเตเดคเตเดฐเด‚. เดธเดพเดงเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ (เดนเต†เตฝเดฎเตเด‚ เดกเต‹เด•เตเด•เดฑเตเด‚ เดชเต‹เดฒเต†) เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚. เด’เดฐเต เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเต เดชเดฐเดฟเดนเดพเดฐเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‡เดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดพเดจเตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเตเด‚.

เดชเดถเตเดšเดพเดคเตเดคเดฒเด‚: เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด‡เดฎเต‡เดœเต เด•เดณเด•เตเดŸเตผ

เดตเต†เตผเดซเดฟเดฒเต† เด‡เดฎเต‡เดœเต เด•เดณเด•เตเดŸเตผเด•เตเด•เต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต เด‡เดคเดพเดฃเต: เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดฎเดคเดฟเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดšเดฐเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดจเต‹เด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดˆ เดชเตเดฐเดถเตเดจเด‚ เดตเต†เตผเดซเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต (เดŽเดจเตเดจเดฟเดŸเตเดŸเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดกเดพเดชเตเดชเต เดŽเดจเตเดจเดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต).

เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดšเดฟเดฒ เดชเตเดฐเดคเตเดฏเต‡เด• เดœเต‹เดฒเดฟเด•เตพเด•เตเด•เต เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ:

  1. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดธเตเด•เต€เด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดธเดพเดงเดพเดฐเดฃ เดšเต†เดฑเดฟเดฏ เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดค:
    • เดธเดฟเดธเตเดฑเตเดฑเด‚-เดตเตˆเดกเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•,
    • เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดกเดฟเดชเตปเดกเตปเดธเดฟ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต† เด’เดฐเต เดฌเดฃเตเดŸเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•,
    • เด†เดธเตเดคเดฟเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•,
    • เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเดฟ, เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต† เด•เต‹เดกเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเตเด‚ เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•.
  2. เดชเตเดฐเตŠเดœเด•เตโ€Œเดฑเตเดฑเต เดซเดฏเดฒเตเด•เดณเดฟเตฝ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเตเดฎเตเดชเต‹เตพ, เดฎเดพเดฑเตเดฑเดฟเดฏ เดซเดฏเดฒเตเด•เดณเดฟเตฝ เด’เดฐเต เดชเดพเดšเตเดšเต เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดšเต เดฌเดฟเตฝเดกเตผ เดตเต‡เด—เดคเตเดคเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เดฒเต†เดฏเตผ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดฃเด‚.
  3. เดšเดฟเดฒ เดซเดฏเดฒเตเด•เตพ เดฎเดพเดฑเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดจเตเดฌเดจเตเดง เด†เดถเตเดฐเดฟเดค เด˜เดŸเตเดŸเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เด‡เดจเตเดจเต เดจเดฎเตเดฎเตเดŸเต† เด•เดณเด•เตเดŸเตผเด•เตเด•เต เดฎเดฑเตเดฑเต เดชเดฒ เดธเดพเดงเตเดฏเดคเด•เดณเตเด‚ เด‰เดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด†เดฆเตเดฏเด•เดพเดฒ เด†เด—เตเดฐเดนเด™เตเด™เดณเตเด‚ เดชเตเดฐเต‡เดฐเดฃเด•เดณเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดชเตŠเดคเตเดตเต‡, เดฐเดฃเตเดŸเตเดคเดตเดฃ เดšเดฟเดจเตเดคเดฟเด•เตเด•เดพเดคเต†, เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดท เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดธเตเดตเดฏเด‚ เด†เดฏเตเดงเดฎเดพเด•เตเด•เดฟ (เดคเดพเดดเต† เดจเต‡เดพเด•เตเด•เตเด•) เดจเดŸเดชเตเดชเดพเด•เตเด•เดพเตป เดฑเต‹เดกเดฟเดฒเดฟเดฑเด™เตเด™เดฟ เดธเตเดตเดจเตเดคเด‚ DSL! เดฒเด•เตเดทเตเดฏเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ, เด…เดธเด‚เดฌเตเดฒเดฟ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเต† เด˜เดŸเตเดŸเด™เตเด™เดณเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดซเดฏเดฒเตเด•เดณเดฟเตฝ เดˆ เด˜เดŸเตเดŸเด™เตเด™เดณเตเดŸเต† เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเดจเตเด‚ เด‰เดฆเตเดฆเต‡เดถเดฟเดšเตเดšเตเดณเตเดณเดคเดพเดฃเต. เด…เดคเต เดชเต‚เตผเดคเตเดคเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต เดธเตเดตเดจเตเดคเด‚ เด•เดณเด•เตเดŸเตผ, เด…เดคเต DSL เดจเต† เด…เดตเดธเดพเดจ เด—เต‹เดณเดพเด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดฟ - เด’เดฐเต เดธเดฎเดพเดนเดฐเดฟเดšเตเดš เดšเดฟเดคเตเดฐเด‚. เด†เดฆเตเดฏเด‚ เดกเดฟเดŽเดธเตเดŽเตฝ เดฑเต‚เดฌเดฟเดฏเดฟเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด—เต‹เดฒเดพเด™เตเด™เดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเดพเดฑเตเดฑเด‚ โ€” เดžเด™เตเด™เดณเตเดŸเต† เด•เดณเด•เตเดŸเดฑเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด’เดฐเต YAML เดซเดฏเดฒเดฟเตฝ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เตพ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต†เตผเดซเดฟเตฝ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเด‚
เดฑเต‚เดฌเดฟเดฏเดฟเตฝ เดกเดพเดชเตเดชเดฟเดจเตเดณเตเดณ เดชเดดเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เตพ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต†เตผเดซเดฟเตฝ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเด‚
YAML-เตฝ werf-เดจเตเดณเตเดณ เดจเดฟเดฒเดตเดฟเดฒเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เด•เดณเด•เตเดŸเดฑเตเดŸเต† เดธเด‚เดตเดฟเดงเดพเดจเดตเตเด‚ เด•เดพเดฒเดคเตเดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต เดฎเดพเดฑเดฟ. เด†เดฆเตเดฏเด‚, เดžเด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเด™เตเด™เตพ เด’เดฐเต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต, เดคเตเดŸเตผเดจเตเดจเต เดžเด™เตเด™เตพ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเตฝ เด…เดธเด‚เดฌเตเดฒเดฟ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เดคเตเดŸเด™เตเด™เดฟ.

NB: เด‡เดชเตเดชเต‹เตพ, เดธเตเดตเดจเตเดคเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ (YAML-เตฝ) เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ, เดธเตเดฑเตเดฑเดพเดชเตเดชเตฝ เด•เดณเด•เตเดŸเตผ เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เดžเด™เตเด™เดณเตเดŸเต† เด•เดณเด•เตเดŸเตผ, เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดตเดณเดฐเต† เดถเด•เตเดคเดฎเดพเดฏ เด’เดฐเต เดŸเต‚เดณเดพเดฏเดฟ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เด…เดคเดฟเดจเตเดฑเต† เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เดฒเต‡เด–เดจเด™เตเด™เตพเด•เตเด•เต เด…เตผเดนเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚.

เดชเตเดฐเดถเตเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดตเดฌเต‹เดงเด‚

เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เตพ เด’เดฐเต เดคเต†เดฑเตเดฑเต เดšเต†เดฏเตเดคเตเดตเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ, เดชเต†เดŸเตเดŸเต†เดจเตเดจเดฒเตเดฒ: เดžเด™เตเด™เตพ เด•เดดเดฟเดตเต เดšเต‡เตผเดคเตเดคเดฟเดฒเตเดฒ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดกเต‹เด•เตเด•เตผเดซเดฟเตฝ เดตเดดเดฟ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด• เด…เดคเต‡ เดŽเตปเดกเต-เดŸเต-เดŽเตปเดกเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดตเดฏเต† เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเด• (เด…เดคเดพเดฏเดคเต เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•, เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•, เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเด•). เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดŸเต‚เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเดจเตเด‚ เดกเต‹เด•เตเด•เตผเดซเดฟเตฝ เดชเดฟเดจเตเดคเตเดฃ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดŽเด™เตเด™เดจเต† เดธเดพเดงเดฟเด•เตเด•เตเด‚, เด…เดคเดพเดฏเดคเต. เด’เดŸเตเดŸเตเดฎเดฟเด•เตเด• เดชเตเดฐเตŠเดœเด•เตโ€Œเดฑเตเดฑเตเด•เตพเด•เตเด•เตเด‚ เด‡เดฎเต‡เดœเตเด•เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเดพเดฐเดฃ เดฎเดพเตผเด—เด‚?..

เดˆ เดšเต‹เดฆเตเดฏเดคเตเดคเดฟเดจเต เด‰เดคเตเดคเดฐเด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚, เดžเด™เตเด™เตพ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เด’เดฐเต Dockerfile (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ Dockerfiles) เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดตเต†เตผเดซเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ?

NB: เดŽเดจเตเดคเดพเดฏเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพ เดŽเดจเตเดคเดฟเดจเดพเดฃเต เดตเต†เตผเดซเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดคเต? เดชเตเดฐเดงเดพเดจ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเดฟเดฒเต‡เด•เตเด•เต เดตเดฐเตเดจเตเดจเต:

  • เด‡เดฎเต‡เดœเต เด•เตเดฒเต€เดจเดฟเด‚เด—เต เด‰เตพเดชเตเดชเต†เดŸเต† เดชเต‚เตผเดฃเตเดฃ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดธเตˆเด•เตเด•เดฟเตพ;
  • เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต‡เดธเดฎเดฏเด‚ เดจเดฟเดฐเดตเดงเดฟ เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเดŸเต† เด…เดธเด‚เดฌเตเดฒเดฟ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต;
  • เดนเต†เตฝเดฎเดฟเดจเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดšเดพเตผเดŸเตเดŸเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดŸ เดตเดฟเดจเตเดฏเดพเดธ เดชเตเดฐเด•เตเดฐเดฟเดฏ.

เด…เดตเดฏเตเดŸเต† เด•เต‚เดŸเตเดคเตฝ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เด‡เดตเดฟเดŸเต† เด•เดพเดฃเดพเด‚ เดชเดฆเตเดงเดคเดฟ เดชเต‡เดœเต.

เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดŽเดดเตเดคเดพเตป เดžเด™เตเด™เตพ เดจเต‡เดฐเดคเตเดคเต† เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดคเดฟเดฐเตเดจเตเดจเต†เด™เตเด•เดฟเตฝ, เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดธเดจเตเดคเต‹เดทเดคเตเดคเต‹เดŸเต† เดชเดฑเดฏเตเด‚: "เดจเดฟเด™เตเด™เดณเตเดŸเต† เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดตเต†เตผเดซเดฟเดจเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•!"

เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚?

เดˆ เดธเดตเดฟเดถเต‡เดทเดคเดฏเตเดŸเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดจเดŸเดชเตเดชเดพเด•เตเด•เตฝ เดฑเดฟเดฒเต€เดธเดฟเตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต werf v1.0.3-beta.1. เดชเตŠเดคเตเดตเดพเดฏ เดคเดคเตเดตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฃเต: เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดตเต†เตผเดซเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดค เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. werf build... เด…เดคเตเดฐเดฎเดพเดคเตเดฐเด‚ - เดตเต†เตผเดซเต เดšเดฟเดคเตเดฐเด‚ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเด‚. เด’เดฐเต เด…เดฎเต‚เตผเดคเตเดค เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเต‹เด•เตเด•เดพเด‚.

เด…เดŸเตเดคเตเดคเดคเต เด…เดฑเดฟเดฏเดฟเด•เตเด•เดพเด‚ 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 - เดตเต†เตผเดซเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดตเดดเดฟ. เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เด‡เดฎเต‡เดœเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด‚ เด‡เดตเดฟเดŸเต† เดฒเดญเตเดฏเดฎเดพเดฃเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดชเต‡เดœเต.

เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต?

เดจเดฟเตผเดฎเตเดฎเดพเดฃ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ, เดกเต‹เด•เตเด•เดฑเดฟเดฒเต† เดฒเต‹เด•เตเด•เตฝ เดฒเต†เดฏเดฑเตเด•เดณเตเดŸเต† เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด•เดพเดทเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚ เดตเต†เตผเดซเต เด•เต‚เดŸเดฟเดฏเดพเดฃเต เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด…เดคเดฟเดจเตเดฑเต† เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเดฒเต‡เด•เตเด•เต เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดคเดพเดฃเดฟเดคเดฟเดจเตผเดคเตเดฅเด‚?

  1. เด’เดฐเต เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เด“เดฐเต‹ เดšเดฟเดคเตเดฐเดตเตเด‚ เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เด˜เดŸเตเดŸเด‚ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต dockerfile (เดตเต‡เตผเดซเดฟเตฝ เดเดคเตŠเด•เตเด•เต† เด˜เดŸเตเดŸเด™เตเด™เดณเดพเดฃเตเดณเตเดณเดคเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚ เด‡เดตเดฟเดŸเต†).
  2. เดธเตเดฑเตเดฑเต‡เดœเดฟเดจเดพเดฏเดฟ dockerfile Dockerfile เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เด’เดชเตเดชเต werf เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเต. Dockerfile เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ, เดธเตเดฑเตเดฑเต‡เดœเต เดธเดฟเด—เตเดจเต‡เดšเตเดšเตผ เดฎเดพเดฑเตเดจเตเดจเต dockerfile เด’เดฐเต เดชเตเดคเดฟเดฏ เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต werf เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดชเตเดชเต เดฎเดพเดฑเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดตเต†เตผเดซเต เด•เดพเดทเต†เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดšเดฟเดคเตเดฐเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต (เดตเต‡เตผเดซเดฟเดฒเต† เด’เดชเตเดชเตเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด‡เดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต เดˆ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต).
  3. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดถเต‡เด–เดฐเดฟเดšเตเดš เดšเดฟเดคเตเดฐเด™เตเด™เตพ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ werf publish (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ werf build-and-publish) เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•. เดกเต‹เด•เตเด•เตผ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดš เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดธเดพเดงเดพเดฐเดฃ เดตเต†เตผเดซเต เด•เตเดฒเต€เดจเดชเตเดชเต เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเด‚, เด…เดคเดพเดฏเดคเต. เดชเดดเดฏ เดšเดฟเดคเตเดฐเด™เตเด™เตพ (N เดฆเดฟเดตเดธเดคเตเดคเต‡เด•เตเด•เดพเตพ เดชเดดเดฏเดคเต), เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเดพเดคเตเดค Git เดถเดพเด–เด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดšเดฟเดคเตเดฐเด™เตเด™เตพ, เดฎเดฑเตเดฑเต เดจเดฏเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดต เดธเตเดตเดฏเดฎเต‡เดต เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เดชเตเดชเต†เดŸเตเด‚.

เด‡เดตเดฟเดŸเต† เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ เด•เดพเดฃเดพเด‚:

เด•เตเดฑเดฟเดชเตเดชเตเด•เดณเตเด‚ เดฎเตเตปเด•เดฐเตเดคเดฒเตเด•เดณเตเด‚

1. ADD-เตฝ เดฌเดพเดนเตเดฏ URL เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ

เดจเดฟเดฒเดตเดฟเตฝ เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดคเตเดคเดฟเตฝ เด’เดฐเต เดฌเดพเดนเตเดฏ URL เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเดฟเดจเตเดคเตเดฃเดฏเดฟเดฒเตเดฒ ADD. เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸ URL-เดฒเต† เด‰เดฑเดตเดฟเดŸเด‚ เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ เดตเต†เตผเดซเต เด’เดฐเต เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดˆ เดซเต€เดšเตเดšเตผ เด‰เดŸเตป เดšเต‡เตผเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดจเตเดจเต.

2. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต .git เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ

เดชเตŠเดคเตเดตเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เด’เดฐเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต .git เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ - เด’เดฐเต เดฆเตเดทเดฟเดšเตเดš เดฎเต‹เดถเด‚ เดถเต€เดฒเด‚, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต†เดจเตเดจเต เด‡เดคเดพ:

  1. เด†เดฃเต†เด™เตเด•เดฟเตฝ .git เด…เดจเตเดคเดฟเดฎ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดคเดคเตเดตเด™เตเด™เตพ เดฒเด‚เด˜เดฟเด•เตเด•เตเดจเตเดจเต 12 เดซเดพเด•เตเดŸเตผ เด†เดชเตเดชเต: เด…เดจเตเดคเดฟเดฎ เดšเดฟเดคเตเดฐเด‚ เด’เดฐเตŠเดฑเตเดฑ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดจเดพเตฝ, เด…เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ git checkout เดเด•เดชเด•เตเดทเต€เดฏเดฎเดพเดฏ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค.
  2. .git เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฒเตเดชเตเดชเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต (เดตเดฒเดฟเดฏ เดซเดฏเดฒเตเด•เตพ เด’เดฐเดฟเด•เตเด•เตฝ เด…เดคเดฟเตฝ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดชเดฟเดจเตเดจเต€เดŸเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเดคเดฟเดจเดพเตฝ เดถเต‡เด–เดฐเด‚ เดตเดฒเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚). เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเตเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเด‚ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดตเตผเด•เตเด•เต เดŸเตเดฐเต€เดฏเตเดŸเต† เดตเดฒเตเดชเตเดชเด‚ Git-เดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดŸเต† เดšเดฐเดฟเดคเตเดฐเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดฒเตเด‚ เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดฒเตเด‚ .git เด…เดตเดธเดพเดจ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ: เดšเดฟเดคเตเดฐเด‚ เด‡เดชเตเดชเต‹เดดเตเด‚ เด’เดฐเต เด…เดงเดฟเด• เดฒเต†เดฏเตผ เดจเต‡เดŸเตเด‚ - เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต เดกเต‹เด•เตเด•เตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต.
  3. เดกเต‹เด•เตเด•เดฑเดฟเดจเต เด…เดจเดพเดตเดถเตเดฏเดฎเดพเดฏ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด’เดฐเต‡ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต†เด™เตเด•เดฟเตฝเดชเตเดชเต‹เดฒเตเด‚, เดตเตเดฏเดคเตเดฏเดธเตเดค เดตเตผเด•เตเด•เต-เดŸเตเดฐเต€เด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, GitLab เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดค เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต /home/gitlab-runner/builds/HASH/[0-N]/yourproject เดธเดฎเดพเดจเตเดคเดฐ เด…เดธเด‚เดฌเตเดฒเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ. เด…เดงเดฟเด• เดชเตเดจเดƒเดธเด‚เดฏเต‹เดœเดจเด‚ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เด†เดฏเดคเดฟเดจเดพเตฝ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ .git เด’เดฐเต‡ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚, เด’เดฐเต‡ เดธเด‚เดญเดฐเดฃเดฟเดฏเตเดŸเต† เดตเตเดฏเดคเตเดฏเดธเตเดค เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดค เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต.

เดตเต†เตผเดซเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดจเตเด‚ เด…เดจเดจเตเดคเดฐเดซเดฒเด™เตเด™เดณเตเดฃเตเดŸเต. เดšเดฟเดฒ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดตเต†เตผเดซเดฟเดจเต เดฌเดฟเตฝเดฑเตเดฑเต เด•เดพเดทเต† เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ (เด‰เดฆเดพ. werf deploy). เดˆ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเดŸเต† เดธเตเดฑเตเดฑเต‡เดœเต เดธเดฟเด—เตเดจเต‡เดšเตเดšเดฑเตเด•เตพ werf เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเต werf.yaml, เด•เต‚เดŸเดพเดคเต† เด…เดต เด…เดธเด‚เดฌเตเดฒเดฟ เด•เดพเดทเต†เดฏเดฟเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ - เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เด•เดฎเดพเตปเดกเดฟเดจเต เดคเตเดŸเตผเดจเตเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดธเตเดฑเตเดฑเต‡เดœเต เด’เดชเตเดชเต เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ .git, เด…เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด…เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดซเดฏเดฒเตเด•เดณเดฟเดฒเต† เดฎเดพเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เต เด…เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด’เดฐเต เด•เดพเดทเต† เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเตเดคเดฐเด‚ เด’เดฐเต เดฎเต‡เตฝเดจเต‹เดŸเตเดŸเด‚ เด•เตเดทเดฎเดฟเด•เตเด•เดพเตป เดตเต†เตผเดซเดฟเดจเต เด•เดดเดฟเดฏเดฟเดฒเตเดฒ (เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพเด•เตเด•เต, เด•เดพเดฃเตเด• เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚).

เดชเตŠเดคเตเดตเต‡ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดšเดฟเดฒ เดซเดฏเดฒเตเด•เตพ เดฎเดพเดคเตเดฐเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเดฟเดฒเต‚เดŸเต† ADD เดเดคเต เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด‚ เดŽเดดเตเดคเดฟเดฏเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดคเดฏเตเด‚ เดตเดฟเดถเตเดตเดพเดธเตเดฏเดคเดฏเตเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต Dockerfile, เด•เต‚เดŸเดพเดคเต† เด‡เดคเดฟเดจเดพเดฏเดฟ เดถเต‡เด–เดฐเดฟเดšเตเดš เด•เดพเดทเต†เดฏเตเดŸเต† เดธเตเดฅเดฟเดฐเดค เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต Dockerfile, Git-เดฒเต† เด…เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต.

เดซเดฒเด‚

เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดฌเดฟเตฝเดกเตผ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดพเดฐเด‚เดญ เดชเดพเดค เด•เด เดฟเดจเดตเตเด‚ เดธเดคเตเดฏเดธเดจเตเดงเดตเตเด‚ เดฒเดณเดฟเดคเดตเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต: เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเดฟเดจเต เดฎเตเด•เดณเดฟเตฝ เด•เตเดฐเดšเตเดšเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚, เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดตเดพเด•เตเดฏเด˜เดŸเดจ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดชเดฐเดฟเดนเดพเดฐเด‚ เดŽเดดเตเดคเดฟ. เด‡เดคเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต† เด—เตเดฃเด™เตเด™เดณเตเดฃเตเดŸเต: เดธเตเดฑเตเดฑเดพเดชเตเดชเตฝ เด•เดณเด•เตเดŸเตผ เด…เดคเดฟเดจเตเดฑเต† เดšเตเดฎเดคเดฒเดฏเต† เดคเดฟเด•เดšเตเดšเตเด‚ เดจเต‡เดฐเดฟเดŸเตเดจเตเดจเต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดฌเดฟเตฝเดกเตผ เดŽเดดเตเดคเตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเตเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดžเด™เตเด™เตพเด•เตเด•เต เดจเดทเตเดŸเดฎเดพเดฏเดฟ. เดˆ เดชเต‹เดฐเดพเดฏเตเดฎ เด‡เดชเตเดชเต‹เตพ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเต, เดญเดพเดตเดฟเดฏเดฟเตฝ เดžเด™เตเด™เดณเตเดŸเต† เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดธเตเดฑเตเดฑเดพเดชเตเดชเตฝ เดฌเดฟเตฝเดกเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตโ€Œเดค เดฌเดฟเตฝเดกเตเด•เตพเด•เตเด•เตเด‚ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต (เด…เดคเดพเดฏเดคเต เด•เดจเดฟเด•เตเด•เต‹เดฏเดฟเตฝ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต† เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เด‰เดณเตเดณเดฟเดฒเต† เดฑเดฃเตเดฃเต‡เดดเตโ€Œเดธเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต) เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เตเด‚ เดตเต‡เดฃเตเดŸเดฟ เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เดชเดฟเดจเตเดคเตเดฃ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดฐเดฃเตเดŸเต เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเตเด•เตพ เด•เดฟเดŸเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ... เดถเตเดฐเดฎเดฟเด•เตเด•เต‚ เดตเต†เตผเดซเต!

เดตเดฟเดทเดฏเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเดฑเต† PS เดฒเดฟเดธเตเดฑเตเดฑเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•: "werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)".

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•