เจตเจฐเจซ เจตเจฟเฉฑเจš เจฎเฉ‹เจจเฉ‹เจฐเฉ‡เจชเฉ‹ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€เจฐเฉ‡เจชเฉ‹ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเจพ เจ‡เจธ เจจเจพเจฒ เจ•เฉ€ เจฒเฉˆเจฃเจพ เจฆเฉ‡เจฃเจพ เจนเฉˆ

เจตเจฐเจซ เจตเจฟเฉฑเจš เจฎเฉ‹เจจเฉ‹เจฐเฉ‡เจชเฉ‹ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€เจฐเฉ‡เจชเฉ‹ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเจพ เจ‡เจธ เจจเจพเจฒ เจ•เฉ€ เจฒเฉˆเจฃเจพ เจฆเฉ‡เจฃเจพ เจนเฉˆ

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

werf เจฆเจพ เจนเจพเจฒเฉ€เจ† เจฎเฉ‹เจจเฉ‹-เจฐเฉ‡เจชเฉ‹ เจธเจชเฉ‹เจฐเจŸ เจ‡เจธเจฆเฉ€ เจตเจงเฉ€เจ† เจ‰เจฆเจพเจนเจฐเจฃ เจนเฉˆเฅค เจชเจฐ เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ เจ‡เจน เจชเจคเจพ เจ•เจฐเฉ€เจ เจ•เจฟ เจ‡เจน เจธเจฎเจฐเจฅเจจ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ werf เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจธเจฌเฉฐเจงเจค เจนเฉˆ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเจพ เจ‡เจธ เจจเจพเจฒ เจ•เฉ€ เจธเฉฐเจฌเฉฐเจง เจนเฉˆ ...

เจฎเฉเฉฑเจฆเฉ‡

เจ†เจ“ เจ…เจœเจฟเจนเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเฉ€เจเฅค เจ•เฉฐเจชเจจเฉ€ เจฆเฉ€เจ†เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจ•เจพเจธ เจŸเฉ€เจฎเจพเจ‚ เจนเจจ เจœเฉ‹ เจธเฉเจคเฉฐเจคเจฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจนเฉ€เจ†เจ‚ เจนเจจเฅค เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ 'เจคเฉ‡ เจšเจฒเจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจˆเจœเจผเจก เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚, เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฐเจœเจฟเจธเจŸเจฐเฉ€ (เจฐเจœเจฟเจธเจŸเจฐเฉ€) เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจœเจฟเจนเฉ€ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจ•เฉฐเจชเจจเฉ€ เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจ–เจพเจคเฉ‡ เจจเจพเจฒ เจกเฉŒเจ•เจฐ เจนเฉฑเจฌ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ COMPANY. เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเฉ‡ เจธเจฎเจพเจจ, เจกเฉŒเจ•เจฐ เจนเฉฑเจฌ เจจเฉ‡เจธเจŸเจก เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฒเฉœเฉ€ เจฆเฉ€ เจ†เจ—เจฟเจ† เจจเจนเฉ€เจ‚ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡ เจ•เฉ€ COMPANY/PROJECT/IMAGE. เจ‰เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจšโ€ฆ เจคเฉเจธเฉ€เจ‚ เจนเจฐเฉ‡เจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจ–เจพเจคเจพ เจฌเจฃเจพเจ เจฌเจฟเจจเจพเจ‚ เจ‡เจธ เจธเฉ€เจฎเจพ เจฆเฉ‡ เจจเจพเจฒ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ—เฉˆเจฐ-เจฎเฉ‹เจจเฉ‹เจฒเจฟเจฅเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจŸเฉ‹เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹?

เจตเจฐเจซ เจตเจฟเฉฑเจš เจฎเฉ‹เจจเฉ‹เจฐเฉ‡เจชเฉ‹ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€เจฐเฉ‡เจชเฉ‹ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเจพ เจ‡เจธ เจจเจพเจฒ เจ•เฉ€ เจฒเฉˆเจฃเจพ เจฆเฉ‡เจฃเจพ เจนเฉˆ

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

เจนเฉฑเจฒ

เจœเฉ‡เจ•เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฎเฉ‹เจจเฉ‹เจฒเจฟเจฅเจฟเจ•, เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ, เจซเจฟเจฐ เจ•เฉ‹เจˆ เจธเจตเจพเจฒ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡ เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจˆ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจตเจœเฉ‹เจ‚ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจฎเจพเจˆเจ•เฉเจฐเฉ‹ เจธเจฐเจตเจฟเจธเจฟเจœเจผ, เจซเจฟเจฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจชเจนเฉเฉฐเจš เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ. เจฆเฉ‹ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจตเจพเจฒเฉ€ เจ‡เฉฑเจ• เจ†เจฎ เจตเฉˆเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ 'เจคเฉ‡: frontend ะธ backend - เจธเฉฐเจญเจต เจตเจฟเจ•เจฒเจช เจนเจจ:

  1. เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉฑเจ–เจฐเฉ‡ เจจเฉ‡เจธเจŸเจก เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹:

    เจตเจฐเจซ เจตเจฟเฉฑเจš เจฎเฉ‹เจจเฉ‹เจฐเฉ‡เจชเฉ‹ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€เจฐเฉ‡เจชเฉ‹ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเจพ เจ‡เจธ เจจเจพเจฒ เจ•เฉ€ เจฒเฉˆเจฃเจพ เจฆเฉ‡เจฃเจพ เจนเฉˆ

  2. เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹, เจ…เจคเฉ‡ เจŸเฉˆเจ— เจตเจฟเฉฑเจš เจšเจฟเฉฑเจคเจฐ เจฆเฉ‡ เจจเจพเจฎ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ…เจจเฉเจธเจพเจฐ:

    เจตเจฐเจซ เจตเจฟเฉฑเจš เจฎเฉ‹เจจเฉ‹เจฐเฉ‡เจชเฉ‹ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€เจฐเฉ‡เจชเฉ‹ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเจพ เจ‡เจธ เจจเจพเจฒ เจ•เฉ€ เจฒเฉˆเจฃเจพ เจฆเฉ‡เจฃเจพ เจนเฉˆ

NB: เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจตเฉฑเจ–-เจตเฉฑเจ– เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจฌเฉฑเจšเจค เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจตเจฟเจ•เจฒเจช เจนเฉˆ, PROJECT-frontend ะธ PROJECT-backend, เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจธเจฎเจฐเจฅเจจ, เจธเฉฐเจ—เจ เจจ เจ…เจคเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจตเฉฐเจก เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ‡เจธ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

werf เจธเจนเจฟเจฏเฉ‹เจ—

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

เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจ…เจงเฉ€เจจ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจ‰เจชเจฒเจฌเจง เจนเฉˆ --images-repo-mode=multirepo|monorepo (เจฎเฉ‚เจฒ multirepo, i.e. เจจเฉ‡เจธเจŸเจก เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐเฉ‡เจœ)เฅค เจ‡เจน เจ‰เจนเจจเจพเจ‚ เจชเฉˆเจŸเจฐเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจธ เจฆเฉเจ†เจฐเจพ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจฎเฉ‹เจก เจšเฉเจฃเจจ เจฒเจˆ เจ‡เจน เจ•เจพเจซเจผเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจฌเจพเจ•เฉ€ เจธเจญ เจ•เฉเจ เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจฐเจนเฉ‡เจ—เจพ.

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ werf เจตเจฟเจ•เจฒเจช เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ, CI / CD เจธเจฟเจธเจŸเจฎเจพเจ‚ เจตเจฟเฉฑเจš, เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฎเฉ‹เจก เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉ‚เจฐเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจ—เจฒเฉ‹เจฌเจฒ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ, GitLab เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹: เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ -> CI / CD -> เจตเฉ‡เจฐเฉ€เจเจฌเจฒ: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจšเจฟเฉฑเจคเจฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ‹เจฒ เจ†เจŠเจŸ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ (เจคเฉเจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฌเจพเจฐเฉ‡ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฒเฉ‡เจ–เจพเจ‚ เจตเจฟเฉฑเจš เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† ะธ เจคเฉˆเจจเจพเจค เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†), เจซเจฟเจฐ เจฎเฉ‹เจก เจธเจฟเจฐเจซเจผ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจธ เจฆเฉเจ†เจฐเจพ เจคเฉเจธเฉ€เจ‚ เจšเจฟเฉฑเจคเจฐ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจธเจผเฉˆเจคเจพเจจ เจตเฉ‡เจฐเจตเฉ‡ เจตเจฟเฉฑเจš เจนเฉˆ

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

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

  1. 3 เจฐเจฃเจจเฉ€เจคเฉ€เจ†เจ‚ เจœเฉ‹ เจ•เจฟ เจ—เจฟเจŸ เจชเฉเจฐเจพเจˆเจฎเจฟเจŸเจฟเจตเจœเจผ เจฆเฉเจ†เจฐเจพ เจœเฉเฉœเฉ€เจ†เจ‚ เจนเฉ‹เจˆเจ†เจ‚ เจนเจจ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจŸเฉˆเจ—, เจธเจผเจพเจ–เจพ เจ…เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจฌเฉฑเจง;
  2. เจฎเจจเจฎเจพเจจเฉ‡ เจ•เจธเจŸเจฎ เจŸเฉˆเจ—เจพเจ‚ เจฒเจˆ 1 เจฐเจฃเจจเฉ€เจคเฉ€เฅค

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

เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (monorepo), เจšเจฟเฉฑเจคเจฐ เจŸเฉˆเจ— เจตเจฟเฉฑเจš, เจฎเฉˆเจŸเจพ เจŸเฉˆเจ— เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจšเจฟเฉฑเจคเจฐ เจฆเจพ เจจเจพเจฎ เจตเฉ€ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: PROJECT:frontend-META-TAG. เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉฑเจ– เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ•เฉ‹เจˆ เจ–เจพเจธ เจตเจฟเจญเจพเจœเจ• เจชเฉ‡เจธเจผ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ, เจชเจฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ…เฉฐเจคเจฟเจฎ เจšเจฟเฉฑเจคเจฐ เจฆเฉ‡ เจฒเฉ‡เจฌเจฒ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซเจผ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจฎเฉเฉฑเจฒ เจœเฉ‹เฉœเจฟเจ† เจนเฉˆเฅค

NB: เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ werf เจธเฉ‹เจฐเจธ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจตเจฐเจฃเจฟเจค เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ PR 1684.

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจธเจพเจกเฉ€ เจชเจนเฉเฉฐเจš เจฆเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจšเจฟเจคเจคเจพ เจตเฉฑเจฒ เจตเจงเฉ‡เจฐเฉ‡ เจงเจฟเจ†เจจ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡: เจŸเฉˆเจ—เจฟเฉฐเจ— เจฐเจฃเจจเฉ€เจคเฉ€เจ†เจ‚, เจฒเฉ‡เจฌเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจจ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฌเจพเจฐเฉ‡ - เจ‡เจน เจธเจญ เจ•เฉเจ เจฆเจฟเจฎเจฟเจคเจฐเฉ€ เจธเจŸเฉ‹เจฒเจฟเจ†เจฐเฉ‹เจต เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจคเจพเจœเจผเจพ เจฐเจฟเจชเฉ‹เจฐเจŸ เจตเจฟเฉฑเจš เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ: "werf เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš CI/CD เจฒเจˆ เจธเจพเจกเจพ เจŸเฉ‚เจฒ เจนเฉˆ".

เจธเฉฐเจ–เฉ‡เจช เจ•เจฐเจจ เจฒเจˆ

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

เจธเจพเจกเฉ‡ เจจเจพเจฒ เจฐเจนเฉ‹ เจ…เจคเฉ‡ เจฌเจนเฉเจค เจœเจฒเจฆเฉ€ เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจ•เจพเจขเจพเจ‚ เจฌเจพเจฐเฉ‡ เจฆเฉฑเจธเจพเจ‚เจ—เฉ‡ werf!

PS

เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจตเฉ€ เจชเฉœเฉเจนเฉ‹:

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

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