แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒแƒก แƒแƒ› แƒ‘แƒšแƒแƒ’แƒ–แƒ”! แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒ˜แƒก แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒžแƒแƒกแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ Red Hat OpenShift-แƒ–แƒ”.

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒฌแƒ˜แƒœแƒ แƒแƒ  แƒžแƒแƒกแƒขแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒฃแƒš แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒแƒ‘แƒ˜แƒฏแƒจแƒ˜ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ S2I แƒกแƒฃแƒ แƒแƒ—แƒ˜, แƒ—แƒแƒ แƒแƒ–แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ HTTP แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ NGINX, แƒฏแƒแƒญแƒ•แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ™แƒ”แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. .

แƒ“แƒฆแƒ”แƒก แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก OpenShift แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ” แƒ“แƒ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒกแƒ—แƒแƒœ, แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒแƒ— แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒแƒ แƒ˜แƒก OpenShift Pipelines แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒšแƒขแƒ”แƒ แƒœแƒแƒขแƒ˜แƒ•แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

OpenShift, แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ

แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜

แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒแƒกแƒขแƒ˜, แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒฃแƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒแƒ แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ โ€žแƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜โ€œ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ”แƒ‘แƒ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜.

แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒฉแƒแƒ แƒฉแƒแƒ”แƒ‘แƒจแƒ˜, แƒแƒกแƒ”แƒ—แƒ˜ "แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜" แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒจแƒ˜.

แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

แƒฏแƒ”แƒ  แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ”แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ แƒ”แƒแƒ’แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒฌแƒ˜แƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ—แƒฃแƒ›แƒชแƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒฎแƒ•แƒ แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒฉแƒแƒ แƒฉแƒแƒจแƒ˜.
แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœแƒก React แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ "dev แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก" แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก:

$ npm run start

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒ˜แƒก แƒคแƒแƒœแƒฏแƒแƒ แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›:

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ’แƒแƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜:

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒแƒฎแƒšแƒ, แƒ—แƒฃ แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒจแƒ”แƒ•แƒ˜แƒขแƒแƒœแƒ—, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ”แƒก.

แƒ™แƒแƒ แƒ’แƒ˜, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒ•แƒแƒฆแƒฌแƒ˜แƒแƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒก OpenShift-แƒ–แƒ”?

แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ OpenShift-แƒ–แƒ”

แƒ—แƒฃ แƒ’แƒแƒฎแƒกแƒแƒ•แƒ—, แƒจแƒ˜ แƒฌแƒ˜แƒœแƒ แƒžแƒแƒกแƒขแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒ”แƒ— S2I แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ’แƒ แƒ”แƒ— แƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ–แƒแƒก แƒ“แƒ แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒ”แƒ—, แƒ แƒแƒ› แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ–แƒ”.

แƒ—แƒฃแƒ›แƒชแƒ, แƒ—แƒฃ แƒ“แƒแƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒแƒ› แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ“แƒแƒœ แƒ˜แƒก แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก $NPM_RUN แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— nodeshift แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒšแƒแƒ“:

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

แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ: แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒจแƒ”แƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ˜แƒ“แƒ”แƒ˜แƒก แƒกแƒแƒ˜แƒšแƒฃแƒกแƒขแƒ แƒแƒชแƒ˜แƒแƒ“.

แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ— NPM_RUN แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒฉแƒ•แƒ”แƒœแƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ’แƒแƒฃแƒจแƒ•แƒแƒก แƒœแƒแƒ แƒ—แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก React แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒฉแƒ•แƒ”แƒœแƒก OpenShift แƒžแƒแƒ“แƒจแƒ˜.

แƒ—แƒฃ แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฏแƒ˜แƒจแƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒก, แƒ˜แƒก แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒ›, แƒกแƒแƒœแƒแƒ› แƒแƒ  แƒจแƒ”แƒ•แƒซแƒšแƒ”แƒ‘แƒ— แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก แƒ™แƒแƒ“แƒ—แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒกแƒ”แƒ•แƒ” แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ“แƒ”แƒ‘แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒชแƒฎแƒแƒ•แƒ แƒแƒ‘แƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”.

แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, nodeshift แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— watch แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜แƒก แƒ“แƒ”แƒ•แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

$ 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

Watch แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ oc rsync แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ–แƒ”, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒฅ.

แƒ”แƒก แƒ˜แƒงแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ React-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒคแƒ แƒ”แƒ˜แƒ›แƒ˜แƒ™แƒ”แƒ‘แƒ—แƒแƒœ, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— NPM_RUN แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ .
โ€ƒ

Openshift แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ— แƒ˜แƒกแƒ”แƒ— แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ OpenShift Pipelines แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฏแƒแƒญแƒ•แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒšแƒขแƒ”แƒ แƒœแƒแƒขแƒ˜แƒ•แƒแƒ“.

แƒ แƒ แƒแƒ แƒ˜แƒก OpenShift แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜

OpenShift Pipelines แƒแƒ แƒ˜แƒก แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ CI/CD แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก Tekton-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. Tekton แƒแƒ แƒ˜แƒก แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก Kubernetes-แƒ˜แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ CI/CD แƒฉแƒแƒ แƒฉแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ“แƒ”แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ”แƒ‘แƒ–แƒ” (Kubernetes, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ.แƒจ.) แƒคแƒฃแƒซแƒ”แƒ›แƒ“แƒ”แƒ‘แƒšแƒฃแƒ แƒ˜ แƒคแƒ”แƒœแƒ˜แƒ“แƒแƒœ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒ–แƒ˜แƒ—.

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒชแƒแƒ“แƒœแƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ—, แƒฏแƒ”แƒ  แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ.

แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒแƒ“, แƒฏแƒ”แƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒแƒ แƒ”แƒ›แƒ:

  1. แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— แƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ— OpenShift 4 แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜ แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก CodeReady Containers (CRD), แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ—. แƒแƒฅ.
  2. แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒ›แƒ–แƒแƒ“ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒ›แƒแƒกแƒ–แƒ” แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜. แƒแƒ  แƒจแƒ”แƒ’แƒ”แƒจแƒ˜แƒœแƒ“แƒ”แƒ—, แƒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒฅ.
  3. แƒ’แƒแƒ“แƒ›แƒแƒฌแƒ”แƒ แƒ Tekton CLI (tkn) แƒแƒฅ.
  4. แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— create-react-app แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒ, แƒ แƒแƒ› แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— (แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ แƒ”แƒแƒ’แƒ˜แƒ แƒ”แƒ‘แƒแƒก).
  5. (แƒแƒ แƒแƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ) แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ— แƒกแƒแƒชแƒแƒ•แƒ˜, แƒ แƒแƒ› แƒœแƒ˜แƒ›แƒฃแƒจแƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— npm แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ npm แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ—.

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒก แƒแƒกแƒ”แƒ•แƒ” แƒ”แƒฅแƒœแƒ”แƒ‘แƒ k8s แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก Kubernetes/OpenShift YAML-แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒšแƒแƒ“. แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ Tasks, ClusterTasks, แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒแƒ›แƒแƒจแƒ˜ แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒ˜.

แฒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ—

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ OpenShift แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜. แƒ›แƒแƒ“แƒ˜แƒ— แƒ•แƒฃแƒฌแƒแƒ“แƒแƒ— แƒแƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒก 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

แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ: แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜

แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ แƒแƒช แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜. แƒแƒœแƒฃ, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒฏแƒ”แƒ แƒแƒ“แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ›แƒ แƒ—แƒฃ แƒ˜แƒ› แƒ’แƒ–แƒ˜แƒ— แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒ˜แƒกแƒแƒ, แƒ แƒแƒ› แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒ’แƒแƒœ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—. แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ Pipeline Operator-แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— 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 แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒก DockerFile-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Buildah-แƒก, แƒ แƒแƒ› แƒจแƒ”แƒ•แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ OpenShift-แƒ˜แƒก แƒจแƒ˜แƒ“แƒ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ›แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก OpenShift, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒก NodeShift-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. .

แƒกแƒแƒ˜แƒ“แƒแƒœ แƒ•แƒ˜แƒชแƒแƒ“แƒ˜แƒ— แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ’แƒ”แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜แƒ—? แƒ“แƒแƒœ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ 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

แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒฃแƒ“แƒ แƒ˜แƒก build-แƒก, แƒกแƒแƒ“แƒแƒช React แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒš แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒก. แƒกแƒฎแƒ•แƒ แƒฉแƒแƒ แƒฉแƒแƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒš แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Ember-แƒจแƒ˜ แƒ˜แƒก แƒ“แƒแƒจแƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒฃแƒš 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-แƒจแƒ˜, แƒแƒœ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒกแƒฃแƒ แƒแƒ—แƒก, แƒกแƒแƒ“แƒแƒช แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ”แƒก. แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ›แƒ˜แƒขแƒแƒ› แƒแƒ› แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก.

แƒ“แƒ แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒฎแƒ“แƒ”แƒœแƒ˜แƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒฃแƒœแƒฅแƒขแƒ–แƒ”...

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ แƒแƒ“แƒ’แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒฎแƒšแƒ แƒ•แƒ—แƒฅแƒ•แƒ˜แƒ—, แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ–แƒแƒ’แƒแƒ“แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒจแƒ”แƒ›แƒแƒ•แƒแƒšแƒ˜ (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 Image Registry-แƒ–แƒ”, แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒแƒ“ แƒ›แƒแƒกแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก webapp-pipeline แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜. แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— แƒแƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ, แƒ—แƒฃ แƒกแƒฎแƒ•แƒ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—.

แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ‘แƒแƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒแƒกแƒ”แƒ•แƒ” แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ“แƒ แƒ”แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒ 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 แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ webapp-pipeline แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜.

แƒงแƒ•แƒ”แƒšแƒ แƒแƒ› แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก:

$ 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

แƒ”แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก (gir แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜) แƒ“แƒ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ (แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ‘-แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ-แƒ˜แƒ›แƒ˜แƒฏแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜) แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก. แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ›แƒ— แƒ›แƒแƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก, แƒ แƒแƒ—แƒ แƒ›แƒแƒœ แƒแƒ  แƒ’แƒแƒ“แƒแƒแƒ›แƒแƒฌแƒ›แƒแƒก TLS, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒก:

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

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ webapp-build-runtime แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ:

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

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก, แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒกแƒ แƒ“แƒ YAML แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒชแƒฎแƒแƒ•แƒ แƒแƒ‘แƒ”แƒœ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก k8s แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒแƒ› แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒแƒ–แƒ” แƒแƒฎแƒแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ— แƒ”แƒก แƒแƒ แƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜.

แƒ™แƒแƒœแƒ•แƒ”แƒ˜แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒก แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—:

$ tkn pipeline start build-and-deploy-react

แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ“ แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“: git แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒ•แƒ”แƒ‘-แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ-แƒ แƒ”แƒžแƒ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ‘-แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ. -image แƒ“แƒ แƒ‘แƒแƒšแƒแƒก แƒ›แƒ”แƒแƒ แƒ” แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก -runtime-web-application-image:

? 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.

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒœแƒแƒฎ.1. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ.

แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ–แƒ” แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ” 2.

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 2. แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒ“แƒจแƒ˜ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒœแƒแƒฎ.3.

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒœแƒแƒฎ 3. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ pod.

แƒฎแƒแƒขแƒ˜แƒก แƒ–แƒ”แƒ“แƒ แƒ›แƒแƒ แƒฏแƒ•แƒ”แƒœแƒ แƒ™แƒฃแƒ—แƒฎแƒ”แƒจแƒ˜ แƒฌแƒ แƒ”แƒ–แƒ” แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ 4-แƒ–แƒ”.

แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ OpenShift-แƒ–แƒ”, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: OpenShift แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ“แƒ OpenShift Pipelines

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 4. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ React แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก OpenShift-แƒ–แƒ” แƒ“แƒ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒกแƒ—แƒแƒœ. แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒ•แƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— แƒฏแƒแƒญแƒ•แƒฃแƒ แƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒกแƒ˜แƒ›แƒฃแƒšแƒแƒชแƒ˜แƒ OpenShift Pipelines-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒแƒฅ.

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ (EN)

แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ•แƒ”แƒ‘แƒ˜แƒœแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒœแƒกแƒ”แƒ‘แƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒžแƒแƒ แƒแƒกแƒ™แƒ”แƒ•แƒก แƒ•แƒ”แƒ‘แƒ˜แƒœแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒแƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ Red Hat OpenShift Container Platform-แƒ˜แƒกแƒ แƒ“แƒ Kubernetes-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ