เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจ‡เจธ เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจนเฉˆเจฒเฉ‹! เจ‡เจน เจฒเฉœเฉ€ เจตเจฟเฉฑเจš เจคเฉ€เจœเฉ€ เจชเฉ‹เจธเจŸ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ Red Hat OpenShift เจ‰เฉฑเจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

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

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

เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจฃ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ OpenShift

เจตเจฟเจ•เจพเจธ เจ•เจพเจฐเจœ เจชเฉเจฐเจตเจพเจน

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

เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ†เจงเฉเจจเจฟเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจตเจฟเฉฑเจš, เจ…เจœเจฟเจนเฉ‡ "เจกเจฟเจตเฉˆเจฒเจชเจฎเฉˆเจ‚เจŸ เจธเจฐเจตเจฐ" เจจเฉ‚เฉฐ เจขเฉเจ•เจตเฉ‡เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจŸเฉ‚เจฒเจธ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจธเจฅเจพเจจเจ• เจ‰เจฆเจพเจนเจฐเจจ

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

$ npm run start

เจซเจฟเจฐ เจŸเจฐเจฎเฉ€เจจเจฒ เจตเจฟเฉฐเจกเฉ‹ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ•เฉเจ เจ…เจœเจฟเจนเจพ เจตเฉ‡เจ–เจพเจ‚เจ—เฉ‡:

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจ…เจคเฉ‡ เจธเจพเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจกเจฟเจซเฉŒเจฒเจŸ เจฌเฉเจฐเจพเจ‰เจœเจผเจฐ เจตเจฟเฉฑเจš เจ–เฉเฉฑเจฒเฉ‡เจ—เฉ€:

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจนเฉเจฃ, เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจพเจ… เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจฐเจฟเจซเฉเจฐเฉˆเจธเจผ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจ เฉ€เจ• เจนเฉˆ, เจธเจฅเจพเจจเจ• เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจจเจพเจฒ, เจธเจญ เจ•เฉเจ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ, เจชเจฐ เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจนเฉˆ?

OpenShift 'เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจธเจฐเจตเจฐ

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเจฟเฉฑเจš เจฏเจพเจฆ เจนเฉˆ เจชเจฟเจ›เจฒเฉ€ เจชเฉ‹เจธเจŸ, เจ…เจธเฉ€เจ‚ S2I เจšเจฟเฉฑเจคเจฐ เจฆเฉ‡ เจ…เจ–เฉŒเจคเฉ€ เจฐเจจ เจชเฉœเจพเจ… (เจฐเจจ เจชเฉœเจพเจ…) เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจฆเฉ‡เจ–เจฟเจ† เจ•เจฟ, เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจธเจพเจกเฉ€ เจตเฉˆเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฐเจต เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉเจ†เจฐเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจกเฉ‚เฉฐเจ˜เฉ€ เจจเจœเจผเจฐ เจฎเจพเจฐเฉ‹ เจธเจ•เฉเจฐเจฟเจชเจŸ เจšเจฒเจพเจ“ เจ‰เจธ เจ‰เจฆเจพเจนเจฐเจจ เจคเฉ‹เจ‚, เจซเจฟเจฐ เจ‡เจธ เจตเจฟเฉฑเจš $NPM_RUN เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจนเฉˆ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจธเจนเจพเจ‡เจ• เจนเฉˆเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจจเฉ‹เจกเจธเจผเจฟเจซเจŸ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚:

$ npx nodeshift --deploy.env NPM_RUN="yarn start" --dockerImage=nodeshift/ubi8-s2i-web-app

เจจเฉ‹เจŸ: เจ‰เจชเจฐเฉ‹เจ•เจค เจ‰เจฆเจพเจนเจฐเจจ เจ†เจฎ เจตเจฟเจšเจพเจฐ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจฃ เจฒเจˆ เจธเฉฐเจ–เฉ‡เจช เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค

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

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจชเฉŒเจก เจฆเฉ‡ เจฒเฉŒเจ— เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ:

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจฌเฉ‡เจธเจผเฉฑเจ•, เจ‡เจน เจธเจญ เจ•เฉเจ เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ…เจธเฉ€เจ‚ เจธเจฅเจพเจจเจ• เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ•เฉ‹เจก เจจเจพเจฒ เจธเจฎเจ•เจพเจฒเฉ€ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡, เจœเฉ‹ เจ•เจฟ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฒเจˆ เจตเฉ€ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจนเฉˆ, เจชเจฐ เจฐเจฟเจฎเฉ‹เจŸ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆ.

เจฐเจฟเจฎเฉ‹เจŸ เจ…เจคเฉ‡ เจธเจฅเจพเจจเจ• เจ•เฉ‹เจก เจฆเจพ เจธเจฎเจ•เจพเจฒเฉ€เจ•เจฐเจจ

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

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

$ npx nodeshift watch

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

เจ‡เจธ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจนเฉเจฃ src/App.js เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจธเจฟเจธเจŸเจฎ เจ‡เจนเจจเจพเจ‚ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ 'เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจ•เจฟเจฐเจฟเจ† เจ•เจฐเฉ‡เจ—เจพ, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฐเจฟเจฎเฉ‹เจŸ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ•เจพเจชเฉ€ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‡เจ—เจพ, เจœเฉ‹ เจซเจฟเจฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเฉ‡เจ—เจพเฅค

เจคเจธเจตเฉ€เจฐ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจ เจฒเจˆ, เจ†เจ“ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‡เจน เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ:

$ npx nodeshift --strictSSL=false --dockerImage=nodeshift/ubi8-s2i-web-app --build.env YARN_ENABLED=true --expose --deploy.env NPM_RUN="yarn start" --deploy.port 3000

$ npx nodeshift watch --strictSSL=false

เจตเจพเจš เจ•เจฎเจพเจ‚เจก oc rsync เจ•เจฎเจพเจ‚เจก เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจเจฌเจธเจŸเจฐเฉˆเจ•เจธเจผเจจ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ‡เฉฑเจฅเฉ‡.

เจ‡เจน React เจฒเจˆ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจธเฉ€, เจชเจฐ เจฌเจฟเจฒเจ•เฉเจฒ เจ‰เจนเฉ€ เจขเฉฐเจ— เจฆเฉ‚เจœเฉ‡ เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจจเจพเจฒ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจฒเฉ‹เฉœ เจ…เจจเฉเจธเจพเจฐ NPM_RUN เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹เฅค
โ€ƒ

เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจ…เฉฑเจ—เฉ‡, เจ…เจธเฉ€เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจœเจผ เจตเจฐเจ—เฉ‡ เจŸเฉ‚เจฒ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจšเฉ‡เจจเจก เจฌเจฟเจฒเจกเจพเจ‚ เจฆเฉ‡ เจตเจฟเจ•เจฒเจช เจตเจœเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

OpenShift เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจ•เฉ€ เจนเฉˆ

OpenShift Pipelines Tekton เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจ•เจฒเจพเจ‰เจก-เจ…เจงเจพเจฐเจฟเจค CI/CD เจจเจฟเจฐเฉฐเจคเจฐ เจเจ•เฉ€เจ•เจฐเจฃ เจ…เจคเฉ‡ เจกเจฟเจฒเจฟเจตเจฐเฉ€ เจธเจฟเจธเจŸเจฎ เจนเฉˆเฅค เจŸเฉ‡เจ•เจŸเจจ เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ, เจฒเจšเจ•เจฆเจพเจฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเฉ‡เจŸเจฟเจต CI/CD เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจนเฉˆ เจœเฉ‹ เจ…เฉฐเจกเจฐเจฒเจพเจˆเฉฐเจ— เจฒเฉ‡เจ…เจฐ เจคเฉ‹เจ‚ เจฆเฉ‚เจฐ เจฐเจนเจฟ เจ•เฉ‡ เจฎเจฒเจŸเฉ€เจชเจฒ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ (เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจฐเจตเจฐ เจฐเจนเจฟเจค, เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚, เจ†เจฆเจฟ) เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจพเจฒเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจฒเจˆ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจฆเฉ‡ เจ•เฉเจ เจ—เจฟเจ†เจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจœเจผเฉ‹เจฐเจฆเจพเจฐ เจธเจฒเจพเจน เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจงเจฟเจ•เจพเจฐเจค เจชเจพเจ  เจชเฉเจธเจคเจ•.

เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจฎเจพเจนเฉŒเจฒ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจšเจฒเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ–เฉ‡เจกเจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเจพ เจตเจพเจคเจพเจตเจฐเจฃ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

  1. เจ‡เฉฑเจ• OpenShift 4 เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเฉ‹เฅค เจธเจพเจกเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ•เฉ‹เจกเจฐเฉ‡เจกเฉ€ เจ•เฉฐเจŸเฉ‡เจจเจฐ (CRD) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจœเจฟเจธ เจฒเจˆ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจฒเฉฑเจญเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡.
  2. เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจคเจฟเจ†เจฐ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ 'เจคเฉ‡ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจ“เจชเจฐเฉ‡เจŸเจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจกเจฐเฉ‹ เจจเจพ, เจ‡เจน เจ†เจธเจพเจจ เจนเฉˆ, เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจ‡เฉฑเจฅเฉ‡.
  3. เจกเจพ .เจจเจฒเฉ‹เจก Tekton CLI (tkn) เจ‡เฉฑเจฅเฉ‡.
  4. เจ‡เฉฑเจ• เจเจช เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ create-react-app เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจŸเฉ‚เจฒ เจšเจฒเจพเจ“ เจœเฉ‹ เจซเจฟเจฐ เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ (เจ‡เจน เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจเจช เจนเฉˆ เจชเฉเจฐเจคเฉ€เจ•เจฟเจฐเจฟเจ†).
  5. (เจตเจฟเจ•เจฒเจชเจฟเจ•) เจจเจฎเฉ‚เจจเจพ เจเจช เจจเฉ‚เฉฐ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ npm เจ‡เฉฐเจธเจŸเฉŒเจฒ เจ…เจคเฉ‡ เจซเจฟเจฐ npm เจธเจŸเจพเจฐเจŸ เจจเจพเจฒ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจ•เจฒเฉ‹เจจ เจ•เจฐเฉ‹เฅค

เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• k8s เจซเฉ‹เจฒเจกเจฐ เจตเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ Kubernetes/OpenShift YAMLs เจธเจผเจพเจฎเจฒ เจนเฉ‹เจฃเจ—เฉ‡เฅค เจ‡เฉฑเจฅเฉ‡ เจŸเจพเจธเจ•, เจ•เจฒเฉฑเจธเจŸเจฐ เจŸเจพเจธเจ•, เจฐเจฟเจธเฉ‹เจฐเจธ เจ…เจคเฉ‡ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจนเฉ‹เจฃเจ—เฉ‡ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚.

เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ

เจธเจพเจกเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจชเจนเจฟเจฒเจพ เจ•เจฆเจฎ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆเฅค เจ†เจ‰ เจ‡เจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ webapp-pipeline เจฆเจพ เจจเจพเจฎ เจฆเฉ‡เจˆเจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจฌเจฃเจพเจ“:

$ oc new-project webapp-pipeline

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

เจ‡เจธ เจฒเจˆ, เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚โ€ฆ

เจ•เจพเจฐเจœ

เจ†เจ‰ เจ…เจธเฉ€เจ‚ เจ•เฉเจ เจ•เจพเจฐเจœ (เจ•เจพเจฐเจœ) เจฌเจฃเจพเจˆเจ, เจœเฉ‹ เจซเจฟเจฐ เจธเจพเจกเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเจจเจ—เฉ‡เฅค เจชเจนเจฟเจฒเจพ เจ•เฉฐเจฎ, apply_manifests_task, เจ‰เจนเจจเจพเจ‚ Kubernetes เจธเจฐเฉ‹เจคเจพเจ‚ (เจธเฉ‡เจตเจพ, เจคเฉˆเจจเจพเจคเฉ€, เจ…เจคเฉ‡ เจฐเฉ‚เจŸ) เจฆเฉ‡ YAML เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเฉˆ เจœเฉ‹ เจธเจพเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ k8s เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจนเจจเฅค เจฆเฉ‚เจœเจพ เจ•เฉฐเจฎ - update_deployment_task - เจธเจพเจกเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจ เจ—เจ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจคเฉˆเจจเจพเจค เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเฉˆเฅค

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

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/tasks/update_deployment_task.yaml
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/tasks/apply_manifests_task.yaml

เจซเจฟเจฐ, tkn CLI เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡, เจœเจพเจ‚เจš เจ•เจฐเฉ‹ เจ•เจฟ เจ•เฉฐเจฎ เจฌเจฃเจพเจ เจ—เจ เจนเจจ:

$ tkn task ls

NAME                AGE
apply-manifests     1 minute ago
update-deployment   1 minute ago

เจจเฉ‹เจŸ: เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจธเจฅเจพเจจเจ• เจ•เจพเจฐเจœ เจนเจจเฅค

เจ•เจฒเฉฑเจธเจŸเจฐ เจ•เจพเจฐเจœ

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

$ tkn clustertask ls

NAME                       AGE
buildah                    1 day ago
buildah-v0-10-0            1 day ago
jib-maven                  1 day ago
kn                         1 day ago
maven                      1 day ago
openshift-client           1 day ago
openshift-client-v0-10-0   1 day ago
s2i                        1 day ago
s2i-go                     1 day ago
s2i-go-v0-10-0             1 day ago
s2i-java-11                1 day ago
s2i-java-11-v0-10-0        1 day ago
s2i-java-8                 1 day ago
s2i-java-8-v0-10-0         1 day ago
s2i-nodejs                 1 day ago
s2i-nodejs-v0-10-0         1 day ago
s2i-perl                   1 day ago
s2i-perl-v0-10-0           1 day ago
s2i-php                    1 day ago
s2i-php-v0-10-0            1 day ago
s2i-python-3               1 day ago
s2i-python-3-v0-10-0       1 day ago
s2i-ruby                   1 day ago
s2i-ruby-v0-10-0           1 day ago
s2i-v0-10-0                1 day ago

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

เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ“ เจ…เจคเฉ‡ เจญเฉ‡เจœเฉ‹

เจชเจนเจฟเจฒเจพ เจ•เฉฐเจฎ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ…เจธเฉ€เจ‚ เจฆเฉเจนเจฐเจพเจตเจพเจ‚เจ—เฉ‡ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจฒเจฟเฉฐเจ•เจก เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ เจฌเจพเจฐเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉ€เจคเจพ เจธเฉ€เฅค เจฏเจพเจฆ เจ•เจฐเฉ‹ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ "เจฌเจฟเจฒเจก" เจ•เจฐเจจ เจฒเจˆ S2I เจšเจฟเฉฑเจคเจฐ (ubi8-s2i-web-app) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€, เจ…เจคเฉ‡ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ OpenShift เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€ เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจจเจพเจฒ เจธเจฎเจพเจชเจค เจนเฉ‹เจˆเฅค เจ…เจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เจธ S2I เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจพเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจˆ เจ‡เฉฑเจ• เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจฆเฉ€ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจจเจคเฉ€เจœเจพ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจงเฉฑเจ•เจฃ เจฒเจˆ เจฌเจฟเจฒเจกเจพเจน เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจจเฉ‹เจกเจธเจผเจฟเจซเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ†เจชเจฃเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค

เจ…เจธเฉ€เจ‚ เจ‡เจน เจธเจญ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเจพเจ‚, เจคเฉเจธเฉ€เจ‚ เจชเฉเฉฑเจ›เจฆเฉ‡ เจนเฉ‹? เจคเฉ‹เจ‚ เจ…เจงเจฟเจ•เจพเจฐเจค Node.js เจฆเจพ เจ…เจงเจฟเจ•เจพเจฐเจค เจธเฉฐเจธเจ•เจฐเจฃ, เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจชเฉ‚เจฐเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ, เจนเฉเจฃ เจ…เจธเฉ€เจ‚ s2i-web-app เจ•เจฒเฉฑเจธเจŸเจฐ เจŸเจพเจธเจ• เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚:

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/clustertasks/s2i-web-app-task.yaml

เจ…เจธเฉ€เจ‚ เจ‡เจธเจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจชเจฐ เจธเจฟเจฐเจซ OUTPUT_DIR เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡:

params:
      - name: OUTPUT_DIR
        description: The location of the build output directory
        default: build

เจกเจฟเจซเฉŒเจฒเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจ‡เจน เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฌเจฟเจฒเจก เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจฐเฉ€เจเจ•เจŸ เจฌเจฟเจฒเจŸ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค เจนเฉ‹เจฐ เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจตเฉฑเจ–-เจตเฉฑเจ– เจฎเจพเจฐเจ—เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจเจ‚เจฌเจฐ เจตเจฟเฉฑเจš เจ‡เจน เจฆเฉ‚เจฐ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจŸเจพเจธเจ• เจฆเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเจฟเจธ เจตเจฟเฉฑเจš HTML, JavaScript, เจ…เจคเฉ‡ CSS เจ…เจธเฉ€เจ‚ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเฉ‡ เจนเจจเฅค

เจ…เจธเฉ€เจ‚ NGINX เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚

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

เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ - เจ‰เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เฉฑเจชเจฐ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ - เจ‡เฉฑเจ• webapp-เจฌเจฟเจฒเจก-เจฐเจจเจŸเจพเจˆเจฎ เจ•เจฒเฉฑเจธเจŸเจฐ เจŸเจพเจธเจ• เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡:

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/clustertasks/webapp-build-runtime-task.yaml

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

เจ…เจคเฉ‡ เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจธเฉเฉฐเจฆเจฐเจคเจพ เจจเจพเจฒ เจ…เจ—เจฒเฉ‡ เจฌเจฟเฉฐเจฆเฉ‚ เจตเฉฑเจฒ เจตเจงเจฆเฉ‡ เจนเจพเจ‚ ...

เจธเจฐเฉ‹เจค

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

# This resource is the location of the git repo with the web application source
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
  name: web-application-repo
spec:
  type: git
  params:
    - name: url
      value: https://github.com/nodeshift-starters/react-pipeline-example
    - name: revision
      value: master

เจ‡เฉฑเจฅเฉ‡ PipelineResource git เจ•เจฟเจธเจฎ เจฆเจพ เจนเฉˆเฅค เจชเฉˆเจฐเจพเจฎ เจธเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš url เจ•เฉเฉฐเจœเฉ€ เจ‡เฉฑเจ• เจ–เจพเจธ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเฉฑเจฒ เจ‡เจธเจผเจพเจฐเจพ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจฎเจพเจธเจŸเจฐ เจฌเฉเจฐเจพเจ‚เจš เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจ‡เจน เจตเจฟเจ•เจฒเจชเจฟเจ• เจนเฉˆ, เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเฉฐเจชเฉ‚เจฐเจจเจคเจพ เจฒเจˆ เจฒเจฟเจ–เจฆเฉ‡ เจนเจพเจ‚)เฅค

เจนเฉเจฃ เจธเจพเจจเฉ‚เฉฐ เจšเจฟเฉฑเจคเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ s2i-web-app เจŸเจพเจธเจ• เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡, เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ:

# This resource is the result of running "npm run build",  the resulting built files will be located in /opt/app-root/output
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
  name: built-web-application-image
spec:
  type: image
  params:
    - name: url
      value: image-registry.openshift-image-registry.svc:5000/webapp-pipeline/built-web-application:latest

เจ‡เฉฑเจฅเฉ‡, PipelineResource เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจ•เจฟเจธเจฎ เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ url เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเจพ เจฎเฉเฉฑเจฒ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ OpenShift เจšเจฟเฉฑเจคเจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเฉฑเจฒ เจ‡เจธเจผเจพเจฐเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ webapp-เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจšเฅค เจ‡เจธ เจธเฉˆเจŸเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฐเจค เจฐเจนเฉ‡ เจนเฉ‹เฅค

เจ…เจคเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจ†เจ–เจฐเฉ€ เจธเจฐเฉ‹เจค เจตเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ€ เจšเจฟเฉฑเจคเจฐ เจฆเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจ‡เจน เจ…เฉฐเจคเจฎ NGINX เจšเจฟเฉฑเจคเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจœเฉ‹ เจซเจฟเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจฆเฉŒเจฐเจพเจจ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ:

# This resource is the image that will be just the static html, css, js files being run with nginx
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
  name: runtime-web-application-image
spec:
  type: image
  params:
    - name: url
      value: image-registry.openshift-image-registry.svc:5000/webapp-pipeline/runtime-web-application:latest

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

เจ‡เจนเจจเจพเจ‚ เจธเจพเจฐเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ•เฉ‹ เจตเจพเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ create เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/resources/resource.yaml

เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เจฟ เจธเจฐเฉ‹เจค เจฌเจฃเจพเจ เจ—เจ เจนเจจ, เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

$ tkn resource ls

เจชเจพเจˆเจชเจฒเจพเจˆเจจ

เจนเฉเจฃ เจœเจฆเฉ‹เจ‚ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจพเจฐเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจนเจจ, เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจฌเจฃเจพ เจ•เฉ‡ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเจพเจ‚เจ—เฉ‡:

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/pipelines/build-and-deploy-react.yaml

เจชเจฐ เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ เจ‡เจนเจจเจพเจ‚ เจญเจพเจ—เจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ€เจ. เจชเจนเจฟเจฒเจพ เจจเจพเจฎ เจนเฉˆ:

apiVersion: tekton.dev/v1alpha1
kind: Pipeline
metadata:
  name: build-and-deploy-react

เจซเจฟเจฐ, เจตเจฟเจธเจผเฉ‡เจธเจผ เจญเจพเจ— เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉฐเจ•เฉ‡เจค เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฌเจฃเจพเจ เจธเจจ:

spec:
  resources:
    - name: web-application-repo
      type: git
    - name: built-web-application-image
      type: image
    - name: runtime-web-application-image
      type: image

เจ…เจธเฉ€เจ‚ เจซเจฟเจฐ เจธเจพเจกเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ•เจพเจฐเจœ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ‡เจธ เจจเฉ‚เฉฐ s2i-web-app เจ•เจพเจฐเจœ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฌเจฃเจพเจ‡เจ† เจนเฉˆ:

tasks:
    - name: build-web-application
      taskRef:
        name: s2i-web-app
        kind: ClusterTask

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

resources:
        inputs:
          - name: source
            resource: web-application-repo
        outputs:
          - name: image
            resource: built-web-application-image
      params:
        - name: TLSVERIFY
          value: "false"

เจ…เจ—เจฒเจพ เจ•เฉฐเจฎ เจฒเจ—เจญเจ— เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเจพ เจนเฉˆ, เจธเจฟเจฐเจซ เจตเฉˆเจฌเจเจช-เจฌเจฟเจฒเจก-เจฐเจจเจŸเจพเจˆเจฎ เจ•เจฒเฉฑเจธเจŸเจฐ เจŸเจพเจธเจ• เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฌเจฃเจพเจ‡เจ† เจนเฉˆ เจจเฉ‚เฉฐ เจ‡เฉฑเจฅเฉ‡ เจฌเฉเจฒเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ:

name: build-runtime-image
    taskRef:
      name: webapp-build-runtime
      kind: ClusterTask

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเจฟเจ›เจฒเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจจเจพเจฒ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจตเจฟเฉฑเจš เจชเจพเจธ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚, เจชเจฐ เจนเฉเจฃ เจ‡เจน เจฌเจฟเจฒเจŸ-เจตเฉˆเจฌ-เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ-เจ‡เจฎเฉ‡เจœ (เจธเจพเจกเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจ•เฉฐเจฎ เจฆเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ) เจนเฉˆเฅค เจ…เจคเฉ‡ เจธเจฟเฉฑเจŸเฉ‡ เจตเจœเฉ‹เจ‚, เจ…เจธเฉ€เจ‚ เจฆเฉเจฌเจพเจฐเจพ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ. เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ•เฉฐเจฎ เจชเจฟเจ›เจฒเฉ‡ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ…เจธเฉ€เจ‚ runAfter เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚:

resources:
        inputs:
          - name: image
            resource: built-web-application-image
        outputs:
          - name: image
            resource: runtime-web-application-image
        params:
        - name: TLSVERIFY
          value: "false"
      runAfter:
        - build-web-application

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

เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจšเจฒเจพเจˆ เจœเจพ เจฐเจนเฉ€ เจนเฉˆ

เจ‡เจธ เจฒเจˆ, เจธเจพเจกเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจฌเจฃเจพเจ เจ—เจ เจนเจจ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡:

$ tkn pipeline start build-and-deploy-react

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

? Choose the git resource to use for web-application-repo: web-application-repo (https://github.com/nodeshift-starters/react-pipeline-example)
? Choose the image resource to use for built-web-application-image: built-web-application-image (image-registry.openshift-image-registry.svc:5000/webapp-pipeline/built-web-
application:latest)
? Choose the image resource to use for runtime-web-application-image: runtime-web-application-image (image-registry.openshift-image-registry.svc:5000/webapp-pipeline/runtim
e-web-application:latest)
Pipelinerun started: build-and-deploy-react-run-4xwsr

เจนเฉเจฃ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹:

$ tkn pipeline logs -f

เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจ…เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจคเฉˆเจจเจพเจค เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจฐเฉ‚เจŸ เจฆเฉ€ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ•เจฐเฉ‹:

$ oc get route react-pipeline-example --template='http://{{.spec.host}}'

เจตเจงเฉ‡เจฐเฉ‡ เจฆเจฟเฉฑเจ– เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจญเจพเจ— เจตเจฟเฉฑเจš เจตเฉˆเฉฑเจฌ เจ•เฉฐเจธเฉ‹เจฒ เจฆเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจœเจผเจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค 1.

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจšเจฟเฉฑเจคเจฐ.1. เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€เฅค

เจšเฉฑเจฒ เจฐเจนเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเจจเจพ เจตเจพเจงเฉ‚ เจตเฉ‡เจฐเจตเฉ‡ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจšเจฟเฉฑเจคเจฐ 2 เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจšเฉŒเจฒ. 2. เจ•เจจเจตเฉ‡เจ…เจฐ เจฌเจพเจฐเฉ‡ เจตเจพเจงเฉ‚ เจœเจพเจฃเจ•เจพเจฐเฉ€เฅค

เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจธเฉ€เจ‚ เจฆเฉเจฐเจฟเจธเจผ เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจŸเฉŒเจชเจฒเฉ‹เจœเฉ€, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ. 3.

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจšเจฟเฉฑเจคเจฐ 3. เจฐเจจเจฟเฉฐเจ— เจชเฉŒเจกเฅค

เจ†เจˆเจ•เจจ เจฆเฉ‡ เจ‰เฉฑเจชเจฐ เจธเฉฑเจœเฉ‡ เจ•เฉ‹เจจเฉ‡ เจตเจฟเฉฑเจš เจธเจฐเจ•เจฒ 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเจจ เจจเจพเจฒ เจธเจพเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ–เฉเฉฑเจฒเฉเจนเจฆเฉ€ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจšเจฟเฉฑเจคเจฐ 4 เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจ“เจชเจจเจธเจผเจฟเจซเจŸ 'เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚, เจญเจพเจ— 3: เจ‡เฉฑเจ• เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจจ เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ“เจชเจจเจธเจผเจฟเจซเจŸ

เจšเฉŒเจฒ. 4. เจ‡เฉฑเจ• เจšเฉฑเจฒ เจฐเจนเฉ€ เจชเฉเจฐเจคเฉ€เจ•เจฟเจฐเจฟเจ† เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเฅค

เจธเจฟเฉฑเจŸเจพ

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

เจตเจงเฉ€เจ• เจธเจฐเฉ‹เจค

เจ†เจ—เจพเจฎเฉ€ เจตเฉˆเจฌเจฟเจจเจพเจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ˜เฉ‹เจธเจผเจฃเจพเจตเจพเจ‚

เจ…เจธเฉ€เจ‚ Red Hat OpenShift เจ•เฉฐเจŸเฉ‡เจจเจฐ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ‡ เจฎเฉ‚เจฒ เจ…เจจเฉเจญเจต เจฌเจพเจฐเฉ‡ เจธเจผเฉเฉฑเจ•เจฐเจตเจพเจฐ เจตเฉˆเจฌเจฟเจจเจพเจฐเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฒเฉœเฉ€ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚:

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

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