OpenShift-เดฒเต† เด†เดงเตเดจเดฟเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ, เดญเดพเด—เด‚ 2: เดšเด™เตเด™เดฒเดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเตเด•เตพ

เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดนเดพเดฏเต! Red Hat OpenShift-เตฝ เด†เดงเตเดจเดฟเด• เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดŽเด™เตเด™เดจเต† เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจ เดžเด™เตเด™เดณเตเดŸเต† เดชเดฐเดฎเตเดชเดฐเดฏเดฟเดฒเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดชเต‹เดธเตเดฑเตเดฑเดพเดฃเดฟเดคเต.

OpenShift-เดฒเต† เด†เดงเตเดจเดฟเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ, เดญเดพเด—เด‚ 2: เดšเด™เตเด™เดฒเดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเตเด•เตพ

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

เด•เตเดฒเต€เตป เดฌเดฟเตฝเดกเตผ เดšเดฟเดคเตเดฐเด‚

เดžเด™เตเด™เตพ เดญเดพเด—เด‚ XNUMX-เตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เดฎเดฟเด•เตเด• เด†เดงเตเดจเดฟเด• เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เตเด‚ เดฌเดฟเตฝเดกเต เดธเตเดฑเตเดฑเต‡เดœเต เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดตเดฏเตเดฃเตเดŸเต, เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด•เต‹เดกเต เดŸเตเดฐเดพเตปเดธเตโ€Œเดชเตˆเดฒเต‡เดทเตป, เดฎเตพเดŸเตเดŸเดฟเดชเตเดชเดฟเตพ เดซเดฏเตฝ เด•เต‹เตบเด•เดฑเตเดฑเดจเต‡เดทเตป, เดฎเดฟเดจเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เดคเตเดŸเด™เตเด™เดฟเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดŸเต† เดซเดฒเดฎเดพเดฏเดฟ เดฒเดญเดฟเดšเตเดš เดซเดฏเดฒเตเด•เตพ - เด‡เดคเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต HTML, JavaScript, CSS เดŽเดจเตเดจเดฟเดตเดฏเดพเดฃเต - เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดซเต‹เตพเดกเดฑเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดซเต‹เตพเดกเดฑเดฟเดจเตเดฑเต† เดธเตเดฅเดพเดจเด‚ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดคเต เดฌเดฟเตฝเดกเต เดŸเต‚เดณเตเด•เดณเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดชเตเดฐเดคเดฟเด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เด‡เดคเต ./build เดซเต‹เตพเดกเดฑเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ (เดžเด™เตเด™เตพ เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดšเตเดตเดŸเต† เดตเดฐเดพเด‚).

เด‰เดฑเดตเดฟเดŸเด‚-เดšเดฟเดคเตเดฐเด‚ (S2I)

เดˆ เดชเต‹เดธเตเดฑเตเดฑเดฟเตฝ "เดŽเดจเตเดคเดพเดฃเต S2I, เด…เดคเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚" เดŽเดจเตเดจ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดธเตเดชเตผเดถเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ (เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚ เด‡เดตเดฟเดŸเต†), เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดตเต†เดฌเต เด†เดชเตเดชเต เดฌเดฟเตฝเดกเตผ เดšเดฟเดคเตเดฐเด‚ เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเดฒเต† เดฐเดฃเตเดŸเต เด˜เดŸเตเดŸเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต.

เด…เดธเด‚เดฌเตเดฒเดฟ เด˜เดŸเตเดŸเด‚

เดจเดฟเด™เตเด™เตพ เดกเต‹เด•เตเด•เตผ เดฌเดฟเตฝเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เด’เดฐเต เดชเตเดคเดฟเดฏ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเดฟเตฝ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เด…เดธเด‚เดฌเตเดฒเดฟ เด˜เดŸเตเดŸเด‚ เดธเตเดตเดญเดพเดตเดคเตเดคเดฟเตฝ เดตเดณเดฐเต† เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดพเดฃเต. เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, OpenShift เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เดฎเดฟเตฝ เด’เดฐเต เดฌเดฟเตฝเดกเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดˆ เด˜เดŸเตเดŸเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต.

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

เดžเด™เตเด™เตพ เดจเต‡เดฐเดคเตเดคเต† เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต†, เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดคเตเด‚ เด‡เดคเดฟเดจเด•เด‚ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเตเดฎเดพเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดธเตเดฅเดพเดจเด‚ เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดŸเต‚เดณเตเด•เดณเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, React-เดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด‡เดคเต ./build เดซเต‹เตพเดกเดฑเตเด‚ เด•เต‹เดฃเต€เดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เต เด‡เดคเต project_name/dist เดซเต‹เตพเดกเดฑเตเด‚ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด•เต‚เดŸเดพเดคเต†, เดฎเตเดฎเตเดชเดคเตเดคเต† เดชเต‹เดธเตเดฑเตเดฑเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเตเดŸเต† เดธเตเดฅเดพเดจเด‚, OUTPUT_DIR เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเต‚เดŸเต† เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดถเดฐเดฟ, เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดซเต‹เตพเดกเดฑเดฟเดจเตเดฑเต† เดธเตเดฅเดพเดจเด‚ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดฒเต‡เด•เตเด•เต เดตเตเดฏเดคเตเดฏเดพเดธเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เตพ เดœเดจเดฑเต‡เดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดค เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เด‡เดฎเต‡เดœเดฟเดฒเต† เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดซเต‹เตพเดกเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเด•เตผเดคเตเดคเตเด•, เด…เดคเดพเดฏเดคเต /opt/apt-root/output. เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฌเดพเด•เตเด•เดฟ เดญเดพเด—เด™เตเด™เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด‚ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเต‹เด•เตเด•เดพเด‚ - เดฑเตบ เด˜เดŸเตเดŸเด‚.

เดฑเตบ เด˜เดŸเตเดŸเด‚

เด…เดธเด‚เดฌเตเดฒเดฟ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดชเตเดคเดฟเดฏ เด‡เดฎเต‡เดœเดฟเตฝ เดกเต‹เด•เตเด•เตผ เดฑเดฃเตเดฃเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด’เดฐเต เด•เต‹เตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดˆ เด˜เดŸเตเดŸเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. OpenShift เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดฎเตเดชเต‹เดดเตเด‚ เด‡เดคเตเดคเดจเตเดจเต† เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดธเต†เตผเดตเต เดฎเตŠเดกเตเดฏเต‚เตพ เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต.

เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป เดˆ เดฐเต€เดคเดฟ เดจเดฒเตเดฒเดคเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดจเตฝเด•เดพเตป เดชเตŠเดคเตเดตเต† เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เดถเดฐเดฟ, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเตฝเด•เตเดจเตเดจเตเดณเตเดณเต‚ เดŽเดจเตเดจเดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ Node.js เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ - เด’เดฐเต เดตเต†เดฌเต เดธเต†เตผเดตเตผ เดฎเดคเดฟเดฏเดพเด•เตเด‚.

เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เด…เดธเด‚เดฌเตเดฒเดฟ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด’เดฐเต เด•เดพเดฐเตเดฏเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดฎเดฑเตเดฑเตŠเดจเตเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดšเด™เตเด™เดฒเดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต.

เดšเด™เตเด™เดฒเดฏเดฟเดŸเตเดŸ เดชเดฃเดฟเด•เตพ

เด‡เดคเดพเดฃเต เด…เดตเตผ เดŽเดดเตเดคเตเดจเตเดจเดคเต เดšเด™เตเด™เดฒเดฏเดฟเตฝ เด•เต†เดŸเตเดŸเดฟเดฏเตเดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเต OpenShift เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ:

"เดฐเดฃเตเดŸเต เด…เดธเด‚เดฌเตเดฒเดฟเด•เตพ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด’เดจเตเดจเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดค เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เดฎเดฑเตเดฑเตŠเดจเตเดจเต เด† เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‡เดฎเต‡เดœเดฟเตฝ เด† เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเดฏเต† เดนเต‹เดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต."

เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดฌเดฟเตฝเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เดตเต†เดฌเต เด†เดชเตเดชเต เดฌเดฟเตฝเดกเตผ เด‡เดฎเต‡เดœเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดคเตเดŸเตผเดจเตเดจเต เดžเด™เตเด™เดณเตเดŸเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เดตเต†เดฌเต เดธเต†เตผเดตเตผ เด‡เดฎเต‡เดœเต, เด…เดคเต‡ NGINX เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เด…เดคเดฟเดจเดพเตฝ, เดจเดฎเตเด•เตเด•เต เดตเต†เดฌเต เด†เดชเตเดชเต เดฌเดฟเตฝเดกเตผ เด‡เดฎเต‡เดœเต เด’เดฐเต "เดถเตเดฆเตเดงเดฎเดพเดฏ" เดฌเดฟเตฝเดกเดฑเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เด…เดคเต‡ เดธเดฎเดฏเด‚ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฑเตบเดŸเตˆเด‚ เด‡เดฎเต‡เดœเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เด‡เดจเดฟ เด‡เดคเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต‚เดŸเต† เดจเต‹เด•เตเด•เดพเด‚.

เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดคเดฟเด•เดฐเดฃ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป, create-react-app เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดŸเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต.

เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดšเต‡เตผเด•เตเด•เดพเตป เด‡เดคเต เดจเดฎเตเดฎเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚ OpenShift เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดซเดฏเตฝ.

เดจเดฎเตเด•เตเด•เต เดˆ เดซเดฏเตฝ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดจเต‹เด•เตเด•เดพเด‚, เด•เต‚เดŸเดพเดคเต† เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚.

parameters:
  - name: SOURCE_REPOSITORY_URL
    description: The source URL for the application
    displayName: Source URL
    required: true
  - name: SOURCE_REPOSITORY_REF
    description: The branch name for the application
    displayName: Source Branch
    value: master
    required: true
  - name: SOURCE_REPOSITORY_DIR
    description: The location within the source repo of the application
    displayName: Source Directory
    value: .
    required: true
  - name: OUTPUT_DIR
    description: The location of the compiled static files from your web apps builder
    displayName: Output Directory
    value: build
    required: false

เด‡เดตเดฟเดŸเต† เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ OUTPUT_DIR เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฎเต‚เดฒเตเดฏเดตเดคเตเดคเดพเดฃเต. เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต† เดฑเดฟเดฏเดพเด•เตเดฑเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเต, เดตเดฟเดทเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸ เด•เดพเดฐเตเดฏเดฎเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดฑเดฟเดฏเดพเด•เตเดฑเตเดฑเต เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดซเต‹เตพเดกเดฑเดพเดฏเดฟ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‚เดฒเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด†เด‚เด—เตเดฒเดฑเดฟเดจเตเดฑเต†เดฏเต‹ เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเดฎเต‹ เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด†เดตเดถเตเดฏเดพเดจเตเดธเดฐเดฃเด‚ เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด‡เดฎเต‡เดœเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดตเดฟเดญเดพเด—เด‚ เดจเต‹เด•เตเด•เดพเด‚.

- apiVersion: v1
  kind: ImageStream
  metadata:
    name: react-web-app-builder  // 1 
  spec: {}
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: react-web-app-runtime  // 2 
  spec: {}
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: web-app-builder-runtime // 3
  spec:
    tags:
    - name: latest
      from:
        kind: DockerImage
        name: nodeshift/ubi8-s2i-web-app:10.x
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: nginx-image-runtime // 4
  spec:
    tags:
    - name: latest
      from:
        kind: DockerImage
        name: 'centos/nginx-112-centos7:latest'

เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต†เดฏเตเด‚ เดจเดพเดฒเดพเดฎเดคเตเดคเต†เดฏเตเด‚ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดจเต‹เด•เตเด•เต‚. เด…เดต เดฐเดฃเตเดŸเตเด‚ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เดณเดพเดฏเดฟ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดต เดŽเดตเดฟเดŸเต† เดจเดฟเดจเตเดจเดพเดฃเต เดตเดฐเตเดจเตเดจเดคเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚.

เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต† เดšเดฟเดคเตเดฐเด‚ web-app-builder เด†เดฃเต, เด‡เดคเต nodeshift/ubi8-s2i-web-app-เตฝ เดจเดฟเดจเตเดจเต 10.x-เตฝ เดŸเดพเด—เต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดกเต‹เด•เตเด•เตผ เดนเดฌเต.

เดจเดพเดฒเดพเดฎเดคเตเดคเต‡เดคเต เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดŸเดพเด—เต เด‰เดณเตเดณ เด’เดฐเต NGINX เดšเดฟเดคเตเดฐเดฎเดพเดฃเต (เดชเดคเดฟเดชเตเดชเต 1.12). เดกเต‹เด•เตเด•เตผ เดนเดฌเต.

เด‡เดจเดฟ เด†เดฆเตเดฏเดคเตเดคเต† เดฐเดฃเตเดŸเต เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดจเต‹เด•เตเด•เดพเด‚. เด…เดต เดฐเดฃเตเดŸเตเด‚ เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดถเต‚เดจเตเดฏเดฎเดพเดฃเต, เด…เดต เดจเดฟเตผเดฎเตเดฎเดพเดฃ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เดตเต†เดฌเต-เด†เดชเตเดชเต-เดฌเดฟเตฝเดกเตผ-เดฑเตบเดŸเตˆเด‚ เดšเดฟเดคเตเดฐเดตเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเตเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด…เดธเด‚เดฌเตเดฒเดฟ เด˜เดŸเตเดŸเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ เด†เดฆเตเดฏเดคเตเดคเต† เดšเดฟเดคเตเดฐเด‚, react-web-app-builder. เด…เดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดˆ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเดฟเตฝ เดžเด™เตเด™เตพ "-builder" เดŽเดจเตเดจเต เดšเต‡เตผเดคเตเดคเดคเต.

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดšเดฟเดคเตเดฐเด‚ - react-web-app-runtime - nginx-image-runtime-เด‰เด‚ react-web-app-builder เด‡เดฎเต‡เดœเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดšเดฟเดฒ เดซเดฏเดฒเตเด•เดณเตเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดตเดฟเดจเตเดฏเดพเดธเดธเดฎเดฏเดคเตเดคเตเด‚ เดˆ เดšเดฟเดคเตเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚, เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดตเต†เดฌเต เดธเต†เตผเดตเดฑเตเด‚ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต HTML, JavaScript, CSS เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด‡เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เต‚.

เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเดฃเต‹? เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดฌเดฟเตฝเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เตพ เดจเต‹เด•เตเด•เดพเด‚, เด…เดคเต เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด‚.

เดžเด™เตเด™เดณเตเดŸเต† เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดฟเดจเต เดฐเดฃเตเดŸเต เดฌเดฟเตฝเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เดณเตเดฃเตเดŸเต. เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เด‡เดคเดพ, เด‡เดคเต เดตเดณเดฐเต† เดจเดฟเดฒเดตเดพเดฐเดฎเตเดณเตเดณเดคเดพเดฃเต:

  apiVersion: v1
  kind: BuildConfig
  metadata:
    name: react-web-app-builder
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: react-web-app-builder:latest // 1
    source:   // 2 
      git:
        uri: ${SOURCE_REPOSITORY_URL}
        ref: ${SOURCE_REPOSITORY_REF}
      contextDir: ${SOURCE_REPOSITORY_DIR}
      type: Git
    strategy:
      sourceStrategy:
        env:
          - name: OUTPUT_DIR // 3 
            value: ${OUTPUT_DIR}
        from:
          kind: ImageStreamTag
          name: web-app-builder-runtime:latest // 4
        incremental: true // 5
      type: Source
    triggers: // 6
    - github:
        secret: ${GITHUB_WEBHOOK_SECRET}
      type: GitHub
    - type: ConfigChange
    - imageChange: {}
      type: ImageChange

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดˆ เดฌเดฟเตฝเดกเดฟเดจเตเดฑเต† เดซเดฒเด‚ เด‡เดฎเต‡เดœเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด…เตฝเดชเตเดชเด‚ เดฎเตเดฎเตเดชเต เด•เดฃเตเดŸ เด…เดคเต‡ react-web-app-builder เด‡เดฎเต‡เดœเดฟเตฝ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดฒเต‡เดฌเตฝ 1 เด‰เดณเตเดณ เดตเดฐเดฟ เดชเดฑเดฏเตเดจเตเดจเต.

2 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟ เดจเดฟเด™เตเด™เดณเต‹เดŸเต เด•เต‹เดกเต เดŽเดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เดฒเดญเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดชเดฑเดฏเตเดจเตเดจเต. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‡เดคเตŠเดฐเต เดœเดฟเดฑเตเดฑเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดฒเตŠเด•เตเด•เต‡เดทเตป, เดฑเต†เดซเตผ, เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดซเต‹เตพเดกเตผ เดŽเดจเตเดจเดฟเดต เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เดฎเตเด•เดณเดฟเตฝ เด•เดฃเตเดŸ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด…เดจเตเดธเดฐเดฟเดšเตเดšเดพเดฃเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเต.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เด•เดฃเตเดŸเดคเดพเดฃเต 3 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟ. เด‡เดคเต OUTPUT_DIR เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดฌเดฟเตฝเดกเต เด†เดฃเต.
เด‡เดฎเต‡เดœเต เดธเตเดŸเตเดฐเต€เด‚ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เด•เดฃเตเดŸ เดตเต†เดฌเต-เด†เดชเตเดชเต-เดฌเดฟเตฝเดกเตผ-เดฑเตบเดŸเตˆเด‚ เด‡เดฎเต‡เดœเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป 4 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟ เดชเดฑเดฏเตเดจเตเดจเต.

S5I เด‡เดฎเต‡เดœเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดตเต†เดฌเต เด†เดชเตเดชเต เดฌเดฟเตฝเดกเตผ เด‡เดฎเต‡เดœเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เด‡เตปเด•เตเดฐเดฟเดฎเต†เดจเตเดฑเตฝ เดฌเดฟเตฝเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต 2 เดฒเต‡เดฌเตฝ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเตˆเตป เดชเดฑเดฏเตเดจเตเดจเต. เด†เดฆเตเดฏ เดฒเต‹เดžเตเดšเดฟเตฝ, เด…เดธเด‚เดฌเตเดฒเดฟ เด˜เดŸเตเดŸเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏ เดถเต‡เดทเด‚, เดšเดฟเดคเตเดฐเด‚ node_modules เดซเต‹เตพเดกเดฑเดฟเดจเต† เด’เดฐเต เด†เตผเด•เตเด•เตˆเดตเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด‚. เดคเตเดŸเตผเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดฑเดฃเตเดฃเตเด•เดณเดฟเตฝ, เดฌเดฟเตฝเดกเต เดธเดฎเดฏเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดšเดฟเดคเตเดฐเด‚ เดˆ เดซเต‹เตพเดกเตผ เด…เตบเดธเดฟเดชเตเดชเต เดšเต†เดฏเตเดฏเตเด‚.

เด’เดŸเตเดตเดฟเตฝ, 6 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเตˆเตป, เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ, เดธเตเดตเดฎเต‡เดงเดฏเดพเดฒเตเดณเตเดณ เด‡เดŸเดชเต†เดŸเดฒเดฟเดฒเตเดฒเดพเดคเต†, เดฌเดฟเตฝเดกเต เดธเตเดตเดฏเดฎเต‡เดต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดšเดฟเดฒ เดŸเตเดฐเดฟเด—เดฑเตเด•เตพ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต.

เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ เด‡เดคเต เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดฌเดฟเตฝเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฃเต.

เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดฌเดฟเตฝเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดจเต‹เด•เตเด•เดพเด‚. เด‡เดคเต เด†เดฆเตเดฏเดคเตเดคเต‡เดคเดฟเดจเต เดตเดณเดฐเต† เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดพเดฃเต, เดชเด•เตเดทเต‡ เด’เดฐเต เดชเตเดฐเดงเดพเดจ เดตเตเดฏเดคเตเดฏเดพเดธเดฎเตเดฃเตเดŸเต.

apiVersion: v1
  kind: BuildConfig
  metadata:
    name: react-web-app-runtime
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: react-web-app-runtime:latest // 1
    source: // 2
      type: Image
      images:                              
        - from:
            kind: ImageStreamTag
            name: react-web-app-builder:latest // 3
          paths:
            - sourcePath: /opt/app-root/output/.  // 4
              destinationDir: .  // 5
             
    strategy: // 6
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: nginx-image-runtime:latest
        incremental: true
      type: Source
    triggers:
    - github:
        secret: ${GITHUB_WEBHOOK_SECRET}
      type: GitHub
    - type: ConfigChange
    - type: ImageChange
      imageChange: {}
    - type: ImageChange
      imageChange:
        from:
          kind: ImageStreamTag
          name: react-web-app-builder:latest // 7

เด…เดคเดฟเดจเดพเตฝ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดฌเดฟเตฝเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฑเดฟเดฏเดพเด•เตเดฑเตเดฑเต-เดตเต†เดฌเต-เด†เดชเตเดชเต-เดฑเตบเดŸเตˆเด‚ เด†เดฃเต, เด‡เดคเต เดตเดณเดฐเต† เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด†เดฏเดฟ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต.

1 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเตˆเตป เดชเตเดคเดฟเดฏ เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ - เดฌเดฟเตฝเดกเต เดฑเดฟเดธเตพเดŸเตเดŸเต เดฑเดฟเดฏเดพเด•เตเดฑเตเดฑเต-เดตเต†เดฌเต-เด†เดชเตเดชเต-เดฑเตบเดŸเตˆเด‚ เด‡เดฎเต‡เดœเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเต เด‡เดคเต เดชเดฑเดฏเตเดจเตเดจเต.

เดฎเตเดฎเตเดชเดคเตเดคเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเดฒเต†เดจเตเดจเดชเต‹เดฒเต† 2 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟ, เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เดŽเดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เดฒเดญเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เด‡เดตเดฟเดŸเต† เดจเดฎเตเดฎเตพ เดชเดฑเดฏเตเดจเตเดจเดคเต เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดคเดคเดพเดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เด‡เดฎเต‡เดœเดฟเตฝ เดจเดฟเดจเตเดจเต - react-web-app-builder-เตฝ เดจเดฟเดจเตเดจเต (3 เดŽเดจเตเดจ เดตเดฐเดฟเดฏเดฟเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต). เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดซเดฏเดฒเตเด•เตพ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเดฒเดพเดฃเต, เด…เดตเดฏเตเดŸเต† เดธเตเดฅเดพเดจเด‚ 4 เดŽเดจเตเดจ เดตเดฐเดฟเดฏเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด…เดคเต /opt/app-root/output/ เด†เดฃเต. เดจเดฟเด™เตเด™เตพ เด“เตผเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดซเดฒเด™เตเด™เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดซเดฏเดฒเตเด•เตพ เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต.

เดฒเต‡เดฌเตฝ 5 เด‰เดณเตเดณ เดชเดฆเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดกเต†เดธเตเดฑเตเดฑเดฟเดจเต‡เดทเตป เดซเต‹เตพเดกเตผ เด•เต‡เดตเดฒเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดพเดฃเต (เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เดŽเดจเตเดจ เดฎเดพเดจเตเดคเตเดฐเดฟเด• เดตเดธเตโ€Œเดคเตเดตเดฟเดจเตเดณเตเดณเดฟเดฒเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเดฒเดฒเตเดฒ).

เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เดตเดฟเดญเดพเด—เด‚ - 6 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟ - เด†เดฆเตเดฏ เดฌเดฟเตฝเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต. เดˆ เดธเดฎเดฏเด‚ เดฎเดพเดคเตเดฐเด‚ เดžเด™เตเด™เตพ เด‡เดฎเต‡เดœเต เดธเตเดŸเตเดฐเต€เด‚ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เด•เดฃเตเดŸ nginx-image-runtime เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดชเต‹เด•เตเดจเตเดจเต.

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, 7 เดŽเดจเตเดจเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเตˆเตป เดŸเตเดฐเดฟเด—เดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เดตเดฟเดญเดพเด—เดฎเดพเดฃเต, เด…เดคเต react-web-app-builder เด‡เดฎเต‡เดœเต เดฎเดพเดฑเตเดฎเตเดชเต‹เดดเต†เดฒเตเดฒเดพเด‚ เดˆ เดฌเดฟเตฝเดกเต เดธเดœเต€เดตเดฎเดพเด•เตเด•เตเด‚.

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

เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดพเดธเด‚

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเดฎเตพ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต, เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป เด…เดคเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚.

เดžเด™เตเด™เดณเตเดŸเต† เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป oc เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจ OpenShift เด•เตเดฒเดฏเดจเตเดฑเต เดŸเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

$ find . | grep openshiftio | grep application | xargs -n 1 oc apply -f

$ oc new-app --template react-web-app -p SOURCE_REPOSITORY_URL=https://github.com/lholmquist/react-web-app

เดฎเตเด•เดณเดฟเดฒเต† เดธเตโ€Œเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเดฟเดฒเต† เด†เดฆเตเดฏ เด•เดฎเดพเตปเดกเต เด’เดฐเต เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเดณเตเดณ เดฎเดจเดƒเดชเต‚เตผเดตเตเดตเด‚ เดŽเดžเตเดšเดฟเดจเต€เดฏเดฑเดฟเด‚เด—เต เดฎเดพเตผเด—เดฎเดพเดฃเต./openshiftio/application.yaml.

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด•เดฎเดพเตปเดกเต เดˆ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต.

เดˆ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดคเดฟเดจเตเดถเต‡เดทเด‚, เดจเดฎเตเด•เตเด•เต เดฐเดฃเตเดŸเต เด…เดธเด‚เดฌเตเดฒเดฟเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เด•เดพเดฃเดพเด‚:

OpenShift-เดฒเต† เด†เดงเตเดจเดฟเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ, เดญเดพเด—เด‚ 2: เดšเด™เตเด™เดฒเดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเตเด•เตพ

เด…เดตเดฒเต‹เด•เดจ เดธเตเด•เตเดฐเต€เดจเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเดฎเตเดชเต‹เตพ, เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดค เดชเต‹เดกเต เดžเด™เตเด™เตพ เด•เดพเดฃเตเด‚:

OpenShift-เดฒเต† เด†เดงเตเดจเดฟเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ, เดญเดพเด—เด‚ 2: เดšเด™เตเด™เดฒเดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเตเด•เตพ

เดฒเดฟเด™เตเด•เดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•, เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดชเต‹เด•เตเด‚, โ€‹โ€‹เด…เดคเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฑเดฟเดฏเดพเด•เตเดฑเตเดฑเต เด†เดชเตเดชเต เดชเต‡เดœเต เด†เดฃเต:

OpenShift-เดฒเต† เด†เดงเตเดจเดฟเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ, เดญเดพเด—เด‚ 2: เดšเด™เตเด™เดฒเดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเตเด•เตพ

เดธเดชเตเดฒเดฟเดฎเต†เดจเตเดฑเต 1

เด•เต‹เดฃเต€เดฏ เดชเตเดฐเต‡เดฎเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เดžเด™เตเด™เดณเตเดฎเตเดฃเตเดŸเต เด‰เดฆเดพเดนเดฐเดฃ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป.

OUTPUT_DIR เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด’เดดเดฟเด•เต†เดฏเตเดณเตเดณ เดชเดพเดฑเตเดฑเต‡เตบ เด‡เดตเดฟเดŸเต† เดธเดฎเดพเดจเดฎเดพเดฃเต.

เดธเดชเตเดฒเดฟเดฎเต†เดจเตเดฑเต 2

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ NGINX เด’เดฐเต เดตเต†เดฌเต เดธเต†เตผเดตเดฑเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดชเด•เตเดทเต‡ เด…เดคเต เด…เดชเตเดชเดพเดšเตเดšเต† เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต, เดซเดฏเดฒเดฟเดฒเต† เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดฎเดพเดฑเตเดฑเตเด• NGINX เดšเดฟเดคเตเดฐเด‚ เด“เตบ เด…เดชเตเดชเดพเดšเตเดšเต† เดšเดฟเดคเตเดฐเด‚.

เดคเต€เดฐเตเดฎเดพเดจเด‚

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

เดˆ เดฒเต‡เด–เดจ เดชเดฐเดฎเตเดชเดฐเดฏเตเดŸเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚

  • เดญเดพเด—เด‚ XX: เดเดคเดพเดจเตเด‚ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเต‚เดŸเต† เด†เดงเตเดจเดฟเด• เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดŽเด™เตเด™เดจเต† เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเด‚;
  • เดญเดพเด—เด‚ 2: เดชเตเดฐเตŠเดกเด•เตเดทเตป เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เด…เดจเตเดฌเดจเตเดง เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เด…เดธเด‚เดฌเตเดฒเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต NGINX เดชเต‹เดฒเตเดณเตเดณ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ HTTP เดธเต†เตผเดตเตผ เด‡เดฎเต‡เดœเดฟเดจเตŠเดชเตเดชเด‚ เด’เดฐเต เดชเตเดคเดฟเดฏ S2I เด‡เดฎเต‡เดœเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚;
  • เดญเดพเด—เด‚ 3: เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดฟ เด’เดฐเต เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเต เดธเต†เตผเดตเตผ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดตเตเดฎเดพเดฏเดฟ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚.

เด…เดงเดฟเด• เดตเดฟเดญเดตเด™เตเด™เตพ

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

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