เช เชฌเซเชฒเซเช เชชเชฐ เชฆเชฐเซเชเชจเซ เชนเซเชฒเซ! เช เชถเซเชฐเซเชฃเซเชจเซ เชคเซเชฐเซเชเซ เชชเซเชธเซเช เชเซ เชเซเชฎเชพเช เช เชฎเซ เชฌเชคเชพเชตเซเช เชเซเช เชเซ Red Hat OpenShift เชชเชฐ เชเชงเซเชจเชฟเช เชตเซเชฌ เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฎเชพเชตเชตเซ.
เช
เชเชพเชเชจเซ เชฌเซ เชชเซเชธเซเชเซเชธเชฎเชพเช, เช
เชฎเซ เชฌเชคเชพเชตเซเชฏเซเช เชเซ เชเชงเซเชจเชฟเช เชตเซเชฌ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชฎเชพเชคเซเชฐ เชฅเซเชกเชพ เชชเชเชฒเชพเชฎเชพเช เชเซเชตเซ เชฐเซเชคเซ เชเชฎเชพเชตเชตเชพ เช
เชจเซ เชจเชตเซ S2I เชเชฎเซเชเชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ เชคเซ เชธเชพเชฅเซ เชเชซ-เชง-เชถเซเชฒเซเชซ HTTP เชธเชฐเซเชตเชฐ เชเชฎเซเช, เชเซเชฎ เชเซ NGINX, เชเชคเซเชชเชพเชฆเชจ เชเชฎเชพเชตเชเชจเซ เชเซเช เชตเชตเชพ เชฎเชพเชเซ เชธเชพเชเชเชณเชตเชพเชณเชพ เชฌเชฟเชฒเซเชกเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ. .
เชเชเซ เช
เชฎเซ เชเชชเชจเชถเชฟเชซเซเช เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชชเชฐ เชคเชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชธเชฐเซเชตเชฐ เชเซเชตเซ เชฐเซเชคเซ เชเชฒเชพเชตเชตเซเช เช
เชจเซ เชคเซเชจเซ เชธเซเชฅเชพเชจเชฟเช เชซเชพเชเชฒ เชธเชฟเชธเซเชเชฎ เชธเชพเชฅเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเชตเซเช เชคเซ เชฌเชคเชพเชตเซเชถเซเช, เช
เชจเซ เชเชชเชจเชถเชฟเชซเซเช เชชเชพเชเชชเชฒเชพเชเชจเซเชธ เชถเซเช เชเซ เช
เชจเซ เชฒเชฟเชเชเซเชก เชเชธเซเชฎเซเชฌเชฒเซเชเชจเชพ เชตเชฟเชเชฒเซเชช เชคเชฐเซเชเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเซ เชถเชเชพเชฏ เชคเซ เชตเชฟเชถเซ เชชเชฃ เชตเชพเชค เชเชฐเซเชถเซเช.
เชตเชฟเชเชพเชธ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชคเชฐเซเชเซ OpenShift
เชตเชฟเชเชพเชธ เชเชพเชฐเซเชฏเชชเซเชฐเชตเชพเชน
เชชเชนเซเชฒเชพเชฅเซ เช เชเชฃเชพเชตเซเชฏเซเช เชคเซเชฎ
เชฎเซเชเชพเชญเชพเชเชจเชพ เชเชงเซเชจเชฟเช เชซเซเชฐเซเชฎเชตเชฐเซเชเชฎเชพเช, เชเชตเชพ "เชตเชฟเชเชพเชธ เชธเชฐเซเชตเชฐ" เช เชจเซเชฐเซเชช เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชเซเชฒเซเชธเชฎเชพเช เชฌเชจเซเชฒ เชเซ.
เชธเซเชฅเชพเชจเชฟเช เชเชฆเชพเชนเชฐเชฃ
เชธเซเชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชเซเชเช เชเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชเชชเซเชฒเซเชเซเชถเชจ เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เช เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ. เชเชพเชฒเซ เชเช เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฒเชเช
เชคเซเชฅเซ, เช
เชฎเชพเชฐเชพ เชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช "เชฆเซเชต เชธเชฐเซเชตเชฐ" เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เช
เชฎเซ เชจเซเชเซเชจเซ เชเชฆเซเชถ เชฆเชพเชเชฒ เชเชฐเซเชถเซเช:
$ npm run start
เชชเชเซ เชเชฐเซเชฎเชฟเชจเชฒ เชตเชฟเชจเซเชกเซเชฎเชพเช เชเชชเชฃเซ เชเชจเชพ เชเซเชตเซเช เชเชเชเช เชเซเชถเซเช:
เช เชจเซ เช เชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชกเชฟเชซเซเชฒเซเช เชฌเซเชฐเชพเชเชเชฐเชฎเชพเช เชเซเชฒเชถเซ:
เชนเชตเซ, เชเซ เชเชชเชฃเซ เชซเชพเชเชฒเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเซเช, เชคเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเซเชฐเชพเชเชเชฐเชฎเชพเช เช เชชเชกเซเช เชฅเชตเซ เชเซเชเช.
เช เซเช เชเซ, เชธเซเชฅเชพเชจเชฟเช เชฎเซเชกเชฎเชพเช เชตเชฟเชเชพเชธ เชธเชพเชฅเซ เชฌเชงเซเช เชธเซเชชเชทเซเช เชเซ, เชชเชฐเชเชคเซ OpenShift เชชเชฐ เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเซเช?
OpenShift เชชเชฐ เชตเชฟเชเชพเชธ เชธเชฐเซเชตเชฐ
เชเซ เชคเชฎเชจเซ เชฏเชพเชฆ เชเซ, เชฎเชพเช
เชเซ เชเซ, เชเซ เชคเชฎเซ เชจเชเซเชเชฅเซ เชเซเช
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชฎเซ เช เชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชจเซเชกเชถเชฟเชซเซเช เชฎเซเชกเซเชฏเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช:
$ npx nodeshift --deploy.env NPM_RUN="yarn start" --dockerImage=nodeshift/ubi8-s2i-web-app
เชจเซเชเชง: เชเชชเชฐเซเชเซเชค เชเชฆเชพเชนเชฐเชฃ เชธเชพเชฎเชพเชจเซเชฏ เชตเชฟเชเชพเชฐเชจเซ เชธเชฎเชเชพเชตเชตเชพ เชฎเชพเชเซ เชธเชเชเซเชทเชฟเชชเซเชค เชเซ.
เช เชนเซเช เช เชฎเซ เช เชฎเชพเชฐเชพ เชเชฎเชพเชตเชเชฎเชพเช NPM_RUN เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซเชฐเซเชเชฌเชฒ เชเชฎเซเชฐเซเชฏเซเช เชเซ, เชเซ เชฏเชพเชฐเซเชจ เชธเซเชเชพเชฐเซเช เชเชฎเชพเชจเซเชก เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชฐเชจเชเชพเชเชฎ เชเชนเซ เชเซ, เชเซ เช เชฎเชพเชฐเชพ เชเชชเชจเชถเชฟเชซเซเช เชชเซเชกเชจเซ เช เชเชฆเชฐ เชฐเชฟเชเชเซเช เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชธเชฐเซเชตเชฐเชจเซ เชถเชฐเซ เชเชฐเซ เชเซ.
เชเซ เชคเชฎเซ เชเชพเชฒเชคเชพ เชชเซเชกเชจเชพ เชฒเซเชเชจเซ เชเซเชถเซ, เชคเซ เชคเซ เชเชเชเช เชเชจเชพ เชเซเชตเซเช เชฆเซเชเชพเชถเซ:
เช เชฒเชฌเชคเซเชค, เชเซเชฏเชพเช เชธเซเชงเซ เชเชชเชฃเซ เชธเซเชฅเชพเชจเชฟเช เชเซเชกเชจเซ เชเซเชก เชธเชพเชฅเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชจ เชเชฐเซ เชถเชเซเช เชคเซเชฏเชพเช เชธเซเชงเซ เช เชฌเชงเซเช เชเชเช เชนเชถเซ, เชเซ เชซเซเชฐเชซเชพเชฐเซ เชฎเชพเชเซ เชชเชฃ เชฎเซเชจเชฟเชเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชชเชฐเชเชคเซ เชฐเชฟเชฎเซเช เชธเชฐเซเชตเชฐ เชชเชฐ เชฐเชนเซ เชเซ.
เชฐเชฟเชฎเซเช เช เชจเซ เชฒเซเชเชฒ เชเซเชกเชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เชธเชฆเชจเชธเซเชฌเซ, เชจเซเชกเชถเชฟเชซเซเช เชธเชฐเชณเชคเชพเชฅเซ เชธเชฟเชเชเซเชฐเชจเชพเชเชเซเชถเชจเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชถเชเซ เชเซ, เช เชจเซ เชคเชฎเซ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชเซเชฐเซ เช เชเชฐเชตเชพ เชฎเชพเชเซ เชตเซเช เชเชฎเชพเชจเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ.
เชคเซเชฅเซ เช เชฎเซ เช เชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชธเชฐเซเชตเชฐเชจเซ เชเชฎเชพเชตเชตเชพ เชฎเชพเชเซ เชเชฆเซเชถ เชเชฒเชพเชตเซเชฏเชพ เชชเชเซ, เช เชฎเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเชจเซ เชธเซเชฐเชเซเชทเชฟเชค เชฐเซเชคเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช:
$ 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 เชเชฆเซเชถเชจเซ เชเซเช เชชเชฐ เชเช เชเชฌเซเชธเซเชเซเชฐเซเชเซเชถเชจ เชเซ, เชคเชฎเซ เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชคเซ เชตเชฟเชถเซ เชตเชงเซ เชเชพเชฃเซ เชถเชเซ เชเซ
เช เชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชฎเชพเชเซเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชนเชคเซเช, เชชเชฐเชเชคเซ เชเซเชเซเชเชธ เชธเชฎเชพเชจ เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เช
เชจเซเชฏ เชซเซเชฐเซเชฎเชตเชฐเซเช เชธเชพเชฅเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชซเชเซเชค NPM_RUN เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเชจเซ เชเชฐเซเชฐเซ เชคเชฐเซเชเซ เชธเซเช เชเชฐเซ.
โ
เชเชชเชจเชถเชฟเชซเซเช เชชเชพเชเชชเชฒเชพเชเชจเซเชธ
เชเชเชณ เชเชชเชฃเซ เชเชชเชจเชถเชฟเชซเซเช เชชเชพเชเชชเชฒเชพเชเชจเซเชธ เชเซเชตเชพ เชเซเชฒ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถเซเช เช เชจเซ เชคเซเชจเซ เชธเชพเชเชเชณเซ เชฌเชพเชเชงเชตเชพเชจเชพ เชตเชฟเชเชฒเซเชช เชคเชฐเซเชเซ เชเซเชตเซ เชฐเซเชคเซ เชตเชพเชชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชเชชเชจเชถเชฟเชซเซเช เชชเชพเชเชชเชฒเชพเชเชจเซเชธ เชถเซเช เชเซ
OpenShift Pipelines เช เชเซเชฒเชพเชเชก-เชจเซเชเชฟเชต CI/CD เชธเชคเชค เชเชเซเชเชฐเชฃ เช เชจเซ เชกเชฟเชฒเชฟเชตเชฐเซ เชธเชฟเชธเซเชเชฎ เชเซ เชเซ เชเซเชเชเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชพเชเชชเชฒเชพเชเชจเซเชธ เชเซเช เชตเชตเชพ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชเซ. เชเซเชเชเชจ เช เชฒเชตเชเซเช เชเชชเชจ-เชธเซเชฐเซเชธ เชเซเชฌเชฐเชจเซเชเซเชธ-เชจเซเชเชฟเชต CI/CD เชซเซเชฐเซเชฎเชตเชฐเซเช เชเซ เชเซ เชคเชฎเชจเซ เช เชเชคเชฐเซเชเชค เชธเซเชคเชฐเชฎเชพเชเชฅเซ เช เชฎเซเชฐเซเชค เชเชฐเซเชจเซ เชตเชฟเชตเชฟเชง เชชเซเชฒเซเชเชซเซเชฐเซเชฎเซเชธ (เชเซเชฌเชฐเชจเซเชเซเชธ, เชธเชฐเซเชตเชฐเชฒเซเชธ, เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจเซ, เชตเชเซเชฐเซ) เชชเชฐ เชเชฎเชพเชตเชเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
เช เชฒเซเชเชจเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชชเชพเชเชชเชฒเชพเชเชจเซเชธเชจเซเช เชฅเซเชกเซเช เชเซเชเชพเชจ เชเชฐเซเชฐเซ เชเซ, เชคเซเชฅเซ เช
เชฎเซ เชญเชพเชฐเชชเซเชฐเซเชตเช เชญเชฒเชพเชฎเชฃ เชเชฐเซเช เชเซเช เชเซ เชคเชฎเซ เชชเชนเซเชฒเชพ เชตเชพเชเชเซ
เชคเชฎเชพเชฐเชพ เชเชพเชฎเชจเซเช เชตเชพเชคเชพเชตเชฐเชฃ เชเซเช เชตเซ เชฐเชนเซเชฏเซเช เชเซ
เช เชฒเซเชเชฎเชพเชเชจเชพ เชเชฆเชพเชนเชฐเชฃเซ เชธเชพเชฅเซ เชฐเชฎเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชชเชนเซเชฒเชพ เชคเชฎเชพเชฐเชพ เชเชพเชฐเซเชฏเชเชพเชฐเซ เชตเชพเชคเชพเชตเชฐเชฃเชจเซ เชคเซเชฏเชพเชฐ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
- เชเชชเชจเชถเชฟเชซเซเช 4 เชเซเชฒเชธเซเชเชฐ เชเชจเซเชธเซเชเซเชฒ เช
เชจเซ เชเซเช เชตเซ. เช
เชฎเชพเชฐเชพ เชเชฆเชพเชนเชฐเชฃเซ เช เชฎเชพเชเซ เชเซเชกเชฐเซเชกเซ เชเชจเซเชเซเชจเชฐ (เชธเซเชเชฐเชกเซ) เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชเซเชจเชพ เชฎเชพเชเซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชธเซเชเชจเชพเช เชฎเชณเซ เชถเชเซ เชเซ.
เช เชนเซเช . - เชเซเชฒเชธเซเชเชฐ เชคเซเชฏเชพเชฐ เชฅเชฏเชพ เชชเชเซ, เชคเชฎเชพเชฐเซ เชคเซเชจเชพ เชชเชฐ เชชเชพเชเชชเชฒเชพเชเชจ เชเชชเชฐเซเชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชกเชฐเชถเซ เชจเชนเซเช, เชคเซ เชธเชฐเชณ เชเซ, เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชธเซเชเชจเชพเช
เช เชนเซเช . - เชกเชพเชเชจเชฒเซเชก
เชเซเชเชเชจ CLI (tkn)เช เชนเซเช . - เชเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ Create-react-app เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชเซเชฒ เชเชฒเชพเชตเซ เชเซ เชคเชฎเซ เชชเชเซ เชเชฎเชพเชตเชถเซ (เช เชเช เชธเชฐเชณ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเซ
เชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ ). - (เชตเซเชเชฒเซเชชเชฟเช) npm เชเชจเซเชธเซเชเซเชฒ เช เชจเซ เชชเชเซ npm เชชเซเชฐเชพเชฐเชเชญ เชธเชพเชฅเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชเชฆเชพเชนเชฐเชฃ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชฐเซเชชเซเชเซเชเชฐเซเชจเซ เชเซเชฒเซเชจ เชเชฐเซ.
เชเชชเซเชฒเชฟเชเซเชถเชจ เชฐเซเชชเซเชเซเชเชฐเซเชฎเชพเช เชเช k8s เชซเซเชฒเซเชกเชฐ เชชเชฃ เชนเชถเซ, เชเซเชฎเชพเช เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชเชฎเชพเชตเชตเชพ เชฎเชพเชเซ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชคเชพ Kubernetes/OpenShift YAMLs เชนเชถเซ. เชคเซเชฏเชพเช เชเชพเชฐเซเชฏเซ, เชเซเชฒเชธเซเชเชฐ เชเชพเชธเซเช, เชธเชเชธเชพเชงเชจเซ เช
เชจเซ เชชเชพเชเชชเชฒเชพเชเชจเซเชธ เชนเชถเซ เชเซ เชเชชเชฃเซ เชเชฎเชพเช เชฌเชจเชพเชตเซเชถเซเช
เชเชพเชฒเซ, เชถเชฐเซ เชเชฐเซเช
เช เชฎเชพเชฐเชพ เชเชฆเชพเชนเชฐเชฃ เชฎเชพเชเซ เชชเซเชฐเชฅเชฎ เชชเชเชฒเซเช เช OpenShift เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชเช เชจเชตเซ เชชเซเชฐเซเชเซเชเซเช เชฌเชจเชพเชตเชตเชพเชจเซเช เชเซ. เชเชพเชฒเซ เช เชชเซเชฐเซเชเซเชเซเชเชจเซ เชตเซเชฌเชเชช-เชชเชพเชเชชเชฒเชพเชเชจ เชเชนเซเช เช เชจเซ เชคเซเชจเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเชฅเซ เชฌเชจเชพเชตเซเช:
$ oc new-project webapp-pipeline
เช เชชเซเชฐเซเชเซเชเซเชเชจเซเช เชจเชพเชฎ เชชเชเซเชฅเซ เชเซเชกเชฎเชพเช เชฆเซเชเชพเชถเซ, เชคเซเชฅเซ เชเซ เชคเชฎเซ เชคเซเชจเซ เชเชเชเช เชฌเซเชเซเช เชจเชพเชฎ เชเชชเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซ เชเซ, เชคเซ เชคเซ เชฎเซเชเชฌ เชเชฆเชพเชนเชฐเชฃ เชเซเชกเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช. เช เชฌเชฟเชเชฆเซเชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ, เชเชชเชฃเซ เชเชชเชฐ-เชจเซเชเซ เชจเชนเซเช, เชชเชฐเชเชคเซ เชจเซเชเซ-เชเชชเชฐ เชเชเชถเซเช: เชเชเชฒเซ เชเซ, เชเชชเชฃเซ เชชเชนเซเชฒเชพ เชเชจเซเชตเซเชฏเชฐเชจเชพ เชคเชฎเชพเชฎ เชเชเชเซ เชฌเชจเชพเชตเซเชถเซเช, เช เชจเซ เชคเซ เชชเชเซ เช เชเชจเซเชตเซเชฏเชฐ เชชเซเชคเซ.
เชคเซเชฅเซ, เชธเซ เชชเซเชฐเชฅเชฎ ...
เชเชพเชฐเซเชฏเซ
เชเชพเชฒเซ เชเซเชเชฒเชพเช เชเชพเชฐเซเชฏเซ เชฌเชจเชพเชตเซเช, เชเซ เชชเชเซ เช เชฎเชพเชฐเซ เชชเชพเชเชชเชฒเชพเชเชจเชฎเชพเช เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชเชฎเชพเชตเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเชถเซ. เชชเซเชฐเชฅเชฎ เชเชพเชฐเซเชฏ - apply_manifests_task - เช เชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเชพ k8s เชซเซเชฒเซเชกเชฐเชฎเชพเช เชธเซเชฅเชฟเชค เชเซเชฌเชฐเชจเซเชเซเชธ เชธเชเชธเชพเชงเชจเซ (เชธเซเชตเชพ, เชเชฎเชพเชตเช เช เชจเซ เชฎเชพเชฐเซเช) เชจเชพ YAML เชฒเชพเชเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ. เชฌเซเชเซเช เชเชพเชฐเซเชฏ - เช เชชเชกเซเช_เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช_เชเชพเชธเซเช - เช เชฎเชพเชฐเซ เชชเชพเชเชชเชฒเชพเชเชจ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเซเชฒ เชเชฌเซ เชชเชฐ เชชเชนเซเชฒเชพเชฅเซ เช เชเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฒเซ เชเชฌเซเชจเซ เช เชชเชกเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ.
เชเชฟเชเชคเชพ เชเชฐเชถเซ เชจเชนเซเช เชเซ เชคเซ เชนเชเซ เชธเซเชงเซ เชเซเชฌ เชธเซเชชเชทเซเช เชจเชฅเซ. เชตเชพเชธเซเชคเชตเชฎเชพเช, เช เชเชพเชฐเซเชฏเซ เชเชชเชฏเซเชเชฟเชคเชพเช เชเซเชตเชพ เชเซ, เช เชจเซ เช เชฎเซ เชคเซเชฎเชจเซ เชฅเซเชกเซ เชตเชพเชฐ เชชเชเซ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชเซเชเชถเซเช. เชนเชฎเชฃเชพเช เชฎเชพเชเซ, เชเชพเชฒเซ เชคเซเชฎเชจเซ เชฌเชจเชพเชตเซเช:
$ 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 เชตเซเชฌ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฎเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช เช เชจเซ เชชเชเซ เชตเชพเชธเซเชคเชตเชฟเช เชฌเชฟเชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ Buildah เชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชเชฎเซเชเชจเซ OpenShift เชเชจเซเชเชฐเชจเชฒ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช เชงเชเซเชฒเซเชถเซเช, เชเชพเชฐเชฃ เชเซ เชเซเชฏเชพเชฐเซ เชคเชฎเซ NodeShift เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชเชฎเชพเชตเชถเซ เชคเซเชฏเชพเชฐเซ OpenShift เชคเซ เช เชเชฐเซ เชเซ. .
เช
เชฎเชจเซ เช เชฌเชงเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฌเชฐ เชชเชกเซ, เชคเชฎเซ เชชเซเชเซ เชเซ? เชฅเซ
เชคเซ, เชเชพเชฒเซ เชนเชตเซ 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-build-runtime เชฌเชจเชพเชตเซเชถเซเช:
$ 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 เชชเซเชฐเชเชพเชฐเชจเซเช เชเซ. params เชตเชฟเชญเชพเชเชฎเชพเช 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 เชเชฎเซเช เชฐเชเชฟเชธเซเชเซเชฐเซ เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซเชถ เชเชฐเซ เชเซ, เชเชพเชธ เชเชฐเซเชจเซ เชตเซเชฌเชเชช-เชชเชพเชเชชเชฒเชพเชเชจ เชจเซเชฎเชธเซเชชเซเชธเชฎเชพเช เชธเซเชฅเชฟเชค เชเซ. เชเซ เชคเชฎเซ เชเซเช เช เชฒเช เชจเซเชฎเชธเซเชชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชฐเชนเซเชฏเชพเช เชนเซเชต เชคเซ เช เชธเซเชเชฟเชเช เชฌเชฆเชฒเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช.
เช เชจเซ เชเซเชฒเซเชฒเซ, เช เชฎเชจเซ เชเซ เชเซเชฒเซเชฒเซเช เชธเชเชธเชพเชงเชจ เชเซเชเช เชเซ เชคเซ เชชเชฃ เชชเซเชฐเชเชพเชฐเชจเซ เชเชฎเซเชเชจเซเช เชนเชถเซ เช เชจเซ เช เช เชเชคเชฟเชฎ 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
เชซเชฐเซเชฅเซ, เชจเซเชเชง เชฒเซ เชเซ เช เชธเชเชธเชพเชงเชจ เชตเซเชฌเชเชช-เชชเชพเชเชชเชฒเชพเชเชจ เชจเซเชฎเชธเซเชชเซเชธเชฎเชพเช เชเชเชคเชฐเชฟเช OpenShift เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช เชเชฌเซเชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซ เชเซ.
เช เชฌเชงเชพ เชธเชเชธเชพเชงเชจเซ เชเชเชธเชพเชฅเซ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เช เชฎเซ 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
เช เชเชพเชเชจเชพ เชเชพเชฐเซเชฏเชจเซ เชเซเชฎ, เช เชฎเซ เชธเชเชธเชพเชงเชจเชฎเชพเช เชชเชธเชพเชฐ เชเชฐเซเช เชเซเช, เชชเชฐเชเชคเซ เชนเชตเซ เชคเซ เชฌเชฟเชฒเซเช-เชตเซเชฌ-เชเชชเซเชฒเชฟเชเซเชถเชจ-เชเชฎเซเช (เช เชฎเชพเชฐเชพ เช เชเชพเชเชจเชพ เชเชพเชฐเซเชฏเชจเซเช เชเชเชเชชเซเช) เชเซ. เช เชจเซ เชเชเชเชชเซเช เชคเชฐเซเชเซ เชเชชเชฃเซ เชซเชฐเซเชฅเซ เชเชฎเซเช เชธเซเช เชเชฐเซเช เชเซเช. เชเชพเชฐเชฃ เชเซ เช เชเชพเชฐเซเชฏ เชชเชพเชเชฒเชพ เชเช เชชเชเซ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชตเซเช เชเซเชเช, เช เชฎเซ เชฐเชจเชเชซเซเชเชฐ เชซเซเชฒเซเชก เชเชฎเซเชฐเซเช เชเซเช:
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.
เชซเชฟเช.1. เชเชพเชฒเซ เชฐเชนเซเชฒ เชชเชพเชเชชเชฒเชพเชเชจเซเชธเชจเซ เชธเชฎเซเชเซเชทเชพ.
เชเชพเชฒเชคเซ เชชเชพเชเชชเชฒเชพเชเชจ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเชตเชพเชฅเซ เชตเชงเชพเชฐเชพเชจเซ เชตเชฟเชเชคเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชพเชฏ เชเซ, เชเซเชฎ เชเซ เชเชเซเชคเชฟ 2 เชฎเชพเช เชฌเชคเชพเชตเซเชฒ เชเซ.
เชเซเชเชพ. 2. เชชเชพเชเชชเชฒเชพเชเชจ เชตเชฟเชถเซ เชตเชงเชพเชฐเชพเชจเซ เชฎเชพเชนเชฟเชคเซ.
เชตเชงเซ เชฎเชพเชนเชฟเชคเซ เชชเชเซ, เชคเชฎเซ เชตเซเชฏเซเชฎเชพเช เชเชพเชฒเซ เชฐเชนเซเชฒเซ เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชเซเช เชถเชเซ เชเซ เชเซเชชเซเชฒเซเชเซ, Fig.3 เชฎเชพเช เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ.
เชซเชฟเช 3. เชฒเซเชเช เชเชฐเซเชฒ เชชเซเชก.
เชเชฟเชนเซเชจเชจเชพ เชเชชเชฐเชจเชพ เชเชฎเชฃเชพ เชเซเชฃเชพเชฎเชพเช เชตเชฐเซเชคเซเชณ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเชตเชพเชฅเซ เช เชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเซเชฒเซ เชเซ, เชเซเชฎ เชเซ เชซเชฟเช. 4 เชฎเชพเช เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ.
เชเซเชเชพ. 4. เชฐเชฟเชเชเซเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฒเชพเชตเชตเซ.
เชจเชฟเชทเซเชเชฐเซเชท
เชคเซเชฅเซ, เช
เชฎเซ OpenShift เชชเชฐ เชคเชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชธเชฐเซเชตเชฐ เชเซเชตเซ เชฐเซเชคเซ เชเชฒเชพเชตเชตเซเช เช
เชจเซ เชคเซเชจเซ เชธเซเชฅเชพเชจเชฟเช เชซเชพเชเชฒ เชธเชฟเชธเซเชเชฎ เชธเชพเชฅเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเชตเซเช เชคเซ เชฌเชคเชพเชตเซเชฏเซเช. เช
เชฎเซ เชเชชเชจเชถเชฟเชซเซเช เชชเชพเชเชชเชฒเชพเชเชจเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชเชจ-เชฌเชฟเชฒเซเชก เชเซเชฎเซเชชเชฒเซเชเชจเซเช เช
เชจเซเชเชฐเชฃ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซเช เชคเซ เชชเชฃ เชเซเชฏเซเช. เช เชฒเซเชเชฎเชพเชเชฅเซ เชคเชฎเชพเชฎ เชเชฆเชพเชนเชฐเชฃ เชเซเชก เชฎเชณเซ เชถเชเซ เชเซ
เชตเชงเชพเชฐเชพเชจเชพ เชธเชเชธเชพเชงเชจเซ (EN)
- เชฎเชซเชค เช-เชฌเซเช
"เชเชชเชจเชถเชฟเชซเซเช เชชเชฐ เชตเชฟเชเชพเชธ: เชเชคเซเชธเซเช เชฎเชพเชเซ เชฎเชพเชฐเซเชเชฆเชฐเซเชถเชฟเชเชพ" Red Hat OpenShift เชเชชเซเชฒเชฟเชเซเชถเชจ เชฐเชจเชเชพเชเชฎ เช เชจเซ Istio เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชจเซเชเซเชจเชฐ-เชธเซเชจเซเชเซเชฐเซเช Node.js เชเชชเซเชฒเซเชเซเชถเชจเซ เชฌเชจเชพเชตเชตเซ Chrome DevTools เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ OpenShift เชชเชฐ Node.js เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชกเซเชฌเช เชเชฐเชตเซเช เชเชชเชจเชถเชฟเชซเซเช เชชเชฐ เชเชเซเชธเชชเซเชฐเซเชธเชจเซ เชถเชฐเซเชเชคเชฅเซ เชฎเชพเชธเซเชเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซเชฐเชฃ เชเชฆเซเชถเซ Red Hat OpenShift เชเชชเซเชฒเชฟเชเซเชถเชจ เชฐเชจเชเชพเชเชฎเชจเชพ เชญเชพเช เชฐเซเชชเซ Node.js เชจเชพ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเชชเชฒเชฌเซเชง เชธเชเชธเซเชเชฐเชฃเชจเซ เชเชพเชนเซเชฐเชพเชค Prometheus เชธเชพเชฅเซ OpenShift เชชเชฐ Node.js เชเชชเซเชฒเซเชเซเชถเชจเชจเซเช เชฎเซเชจเชฟเชเชฐเชฟเชเช - เชชเชฐ เช
เชจเซเชฏ เชฒเซเชเซ
OpenShift เช เชจเซ Kubernetes Red Hat เชตเซเชฌเชธเชพเชเช เชชเชฐ
เชเชเชพเชฎเซ เชตเซเชฌเชฟเชจเชพเชฐเชจเซ เชเชพเชนเซเชฐเชพเชค
เช เชฎเซ Red Hat OpenShift เชเชจเซเชเซเชจเชฐ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เช เชจเซ เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเซเชณ เช เชจเซเชญเชต เชตเชฟเชถเซ เชถเซเชเซเชฐเชตเชพเชฐเชจเชพ เชตเซเชฌเชฟเชจเชฐเซเชธเชจเซ เชถเซเชฐเซเชฃเซ เชถเชฐเซ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช:
เชเชเชธเซเช 28, เชตเซเชฌเชฟเชจเชฐ เชธเชฎเซเชฐเชพเช "เชเชชเชฐเซเชเชฐ": เชเชชเชจเชถเชฟเชซเซเช เช เชจเซ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชเชชเชฐเซเชเชฐเซเชธ เชธเชชเซเชเซเชฎเซเชฌเชฐ 11, เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชเซเชจเซเชซเชฟเช เชตเชฟ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช - เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเชจเชพเชตเชตเชพ เช เชจเซ เชเชฎเชพเชตเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชจเชถเชฟเชซเซเช-เชตเชฟเชถเชฟเชทเซเช เชเชพเชฆเซ เชธเชชเซเชเซเชฎเซเชฌเชฐ 25, Red Hat OpenShift เช เชจเซ Machine API เชเชเซเชเซเชฌเชฐ 9, เชเชพเชฎเชจเชพ เชฌเซเชเชฎเชพเช เช เชเชพเชจเช เชตเชงเชพเชฐเซ เชฅเชตเชพเชจเซ เชธเชพเชฎเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ เชเชเซเชเซเชฌเชฐ 23, เชฐเซเชก เชนเซเช เชเชชเชจเชถเชฟเชซเซเช เชเชจเซเชเซเชจเชฐ เชชเซเชฒเซเชเชซเซเชฐเซเชฎเชฎเชพเช เชเชฎเซเชฌเซเชกเซเชก เชเซเชจเชเชฟเชจเซเชธ, เชชเชพเชเชชเชฒเชพเชเชจ-เชฌเชฟเชฒเซเชกเซเชธ, เชเซเชเชเชจ
เชธเซเชฐเซเชธ: www.habr.com