แแแแแ แฏแแแ แงแแแแแก แแ แแแแแแ! แแก แแ แแก แกแแ แแแก แแแกแแแ แแแกแขแ, แ แแแแแจแแช แฉแแแ แแแฉแแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแแแแกแแ แแแแแแแแ แแแ แแแ แแแแแแแชแแแแ Red Hat OpenShift-แแ.
แฌแแแ แแ แแแกแขแจแ, แฉแแแ แแแฉแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแแแแกแแ แแแแแแแแ แแแ แแแ แแแแแแแชแแแแ แกแฃแ แ แแแแแแแแ แแแแแฏแจแ แแ แ แแแแ แแแแแแแงแแแแ แแฎแแแ S2I แกแฃแ แแแ, แแแ แแแ แแ แกแแแฃแแ HTTP แกแแ แแแ แแก แกแฃแ แแแแแ แแ แแแ, แ แแแแ แแชแแ NGINX, แฏแแญแแฃแ แ แแแแกแขแ แฃแฅแชแแแแแก แแแแแงแแแแแแ แฌแแ แแแแแแก แแแแแแแแแแก แแ แแแกแขแ แแ แแแแกแแแแก. .
แแฆแแก แฉแแแ แแแฉแแแแแแ, แแฃ แ แแแแ แฃแแแ แแแฃแจแแแ แแแแแแแแ แแแแก แกแแ แแแ แ แแฅแแแแ แแแแแแแชแแแกแแแแก OpenShift แแแแขแคแแ แแแแ แแ แกแแแฅแ แแแแแแชแแ แแแแฎแแแแแ แแแแแแแแ แแ แคแแแแฃแ แกแแกแขแแแแกแแแ, แแกแแแ แแแกแแฃแแ แแ แแแแแ, แแฃ แ แ แแ แแก OpenShift Pipelines แแ แ แแแแ แจแแแซแแแแ แแแแ แแแแแงแแแแแ, แ แแแแ แช แแแขแแ แแแขแแแ แแแแแแจแแ แแแฃแแ แจแแแ แแแแแแกแแแแก.
OpenShift, แ แแแแ แช แแแแแแแแ แแแแก แแแ แแแ
แแแแแแแแ แแแแก แกแแแฃแจแแ แแ แแชแแกแ
แ แแแแ แช แฃแแแ แแฆแแแแจแแ
แฃแแแขแแก แแแแแแแแ แแแ แฉแแ แฉแแแแจแ, แแกแแแ "แแแแแแแแ แแแแก แกแแ แแแ แ" แฉแแจแแแแแฃแแแ แแ แซแแแแแแก แฎแแแแก แจแแกแแแแแแก แแแกแขแ แฃแแแแขแแแจแ.
แแแแแแแแ แแแ แแแแแแแแ
แฏแแ แแแแฎแแ, แ แแแแ แแฃแจแแแแก แแก แแแแแแแชแแแแแก แแแแแแฃแ แแ แแแจแแแแแกแแก. แแแแแแแแ แแแแฆแแ แแแแแแแชแแ
แแกแ แ แแ, แฉแแแแก React แแแแแแแแจแ "dev แกแแ แแแ แแก" แแแกแแฌแงแแแแ, แฉแแแ แจแแแแงแแแแ แจแแแแแ แแ แซแแแแแแก:
$ npm run start
แจแแแแแ แขแแ แแแแแแแก แคแแแฏแแ แแจแ แฉแแแ แแแแฎแแแ แแกแแแแกแ แ แแ:
แแ แฉแแแแ แแแแแแแชแแ แแแแฎแกแแแแ แแแแฃแแแกแฎแแแ แแ แแฃแแแ แจแ:
แแฎแแ, แแฃ แคแแแแจแ แชแแแแแแแแแก แจแแแแขแแแ, แแแแแแแชแแ แแ แแฃแแแ แจแ แฃแแแ แแแแแฎแแแแก.
แแแ แแ, แงแแแแแคแแ แ แแแกแแแแแแ แแแแแแฃแ แ แแแแแจแ แแแแแแแแ แแแแ, แแแแ แแ แ แแแแ แแแแแฆแฌแแแ แแแแแแก OpenShift-แแ?
แแแแแแแแ แแแแก แกแแ แแแ แ OpenShift-แแ
แแฃ แแแฎแกแแแ, แจแ
แแฃแแชแ, แแฃ แแแแแแแ แแแแแ
แแแแแแแแแ, แฉแแแ แจแแแแแซแแแ แแแแแแแงแแแแ nodeshift แแแแฃแแ แฉแแแแ แแแแแแแชแแแก แแแแกแแแแแกแแแแแ:
$ npx nodeshift --deploy.env NPM_RUN="yarn start" --dockerImage=nodeshift/ubi8-s2i-web-app
แจแแแแจแแแ: แแแแแ แแแงแแแแแแ แแแแแแแแ แจแแแแแแแแฃแแแ แแแแแแ แแแแแก แกแแแแฃแกแขแ แแชแแแ.
แแฅ แฉแแแ แแแแแแแขแแ NPM_RUN แแแ แแแแก แชแแแแแ แฉแแแแก แแแแแแแแแแก, แ แแแแแแช แแฃแแแแแ แแแจแแแแแก แแ แแก แแแฃแจแแแก แแแ แแแก แแแฌแงแแแแก แแ แซแแแแแ, แ แแแแแแช แแฌแงแแแก React แแแแแแแแ แแแแก แกแแ แแแ แก แฉแแแแก OpenShift แแแแจแ.
แแฃ แแแแแฎแแแแแ แแแจแแแแฃแแ แฏแแจแแก แแฃแ แแแแก, แแก แแกแ แแแแแแงแฃแ แแแ:
แ แ แแฅแแ แฃแแแ, แแก แงแแแแแคแแ แ แแ แแคแแ แ แแฅแแแแ แแแแแ, แกแแแแ แแ แจแแแซแแแแ แแแแแแฃแ แ แแแแแก แกแแแฅแ แแแแแแชแแแก แแแแแแ, แ แแแแแแช แแกแแแ แแแแขแ แแแแแแ แชแแแแแแแแแแกแแแแก, แแแแ แแ แชแฎแแแ แแแก แแแกแขแแแชแแฃแ แกแแ แแแ แแ.
แแแกแขแแแชแแฃแ แ แแ แแแแแแแแ แแแ แแแแแก แกแแแฅแ แแแแแแชแแ
แกแแแแแแแแ แแ, 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 Pipelines แแ แ แแแแ แจแแแซแแแแ แแแกแ แแแแแงแแแแแ แฏแแญแแฃแ แ แแแแกแขแ แฃแฅแชแแแแแก แแแขแแ แแแขแแแแ.
แ แ แแ แแก OpenShift แแแแกแแแแแแแ
OpenShift Pipelines แแ แแก แฆแ แฃแแแแแแแ CI/CD แฃแฌแงแแแขแ แแแขแแแ แแชแแแกแ แแ แแแฌแแแแแแก แกแแกแขแแแ, แ แแแแแแช แจแแฅแแแแแแ แแแแกแแแแแแแแก แแ แแแแแแแแแกแแแแก Tekton-แแก แแแแแงแแแแแแ. Tekton แแ แแก แแแฅแแแแ แฆแแ แแแแแก Kubernetes-แแก แแจแแแแแฃแ แ CI/CD แฉแแ แฉแ, แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แแแขแแแแขแแแแ แแแ แแแแแแแแแ แกแฎแแแแแกแฎแแ แแแแขแคแแ แแแแแ (Kubernetes, แกแแ แแแ แแแแก แแแ แแจแ, แแแ แขแฃแแแฃแ แ แแแแฅแแแแแ แแ แ.แจ.) แคแฃแซแแแแแแแฃแ แ แคแแแแแแ แแแกแขแ แแฅแชแแแก แแแแ.
แแ แกแขแแขแแแก แแแกแแแแแแ แกแแญแแ แแ แแแแกแแแแแแแแก แแแ แแแแฃแแ แชแแแแ, แแแแขแแ แแแ แฉแแแ, แฏแแ แฌแแแแแแฎแแ
แแฅแแแแ แกแแแฃแจแแ แแแ แแแแก แแแงแแแแแ
แแ แกแขแแขแแแจแ แแแชแแแฃแแ แแแแแแแแแแแ แกแแแแแแจแแ, แฏแแ แฃแแแ แแแแแแแแแ แแฅแแแแ แกแแแฃแจแแ แแแ แแแ:
- แแแแแแกแขแแแแ แแ แแ แแแแแแแคแแแฃแ แแ แแ OpenShift 4 แแแแกแขแแ แ. แฉแแแแ แแแแแแแแแแ แแแแกแแแแก แแงแแแแแก CodeReady Containers (CRD), แ แแแแแก แแแกแขแแแแชแแแก แแแกแขแ แฃแฅแชแแแแ แจแแแแซแแแแ แแแฎแแ.
แแฅ . - แแแก แจแแแแแ, แ แแช แแแแกแขแแ แ แแแแ แแฅแแแแ, แแฅแแแ แฃแแแ แแแแแแกแขแแแแ แแ แแแกแแ แแแแกแแแแแแก แแแแ แแขแแ แ. แแ แจแแแแจแแแแแ, แแก แแแ แขแแแแ, แแแกแขแแแแชแแแก แแแกแขแ แฃแฅแชแแแแ
แแฅ . - แแแแแแฌแแ แ
Tekton CLI (tkn)แแฅ . - แแแฃแจแแแ create-react-app แแ แซแแแแแแก แฎแแแแก แฎแแแกแแฌแงแ, แ แแ แจแแฅแแแแ แแแแแแแชแแ, แ แแแแแกแแช แจแแแแแ แแแแแแแแกแแแ (แแก แแ แแก แแแ แขแแแ แแแแแแแชแแ
แ แแแแแ แแแแก ). - (แแ แแกแแแแแแแแฃแแ) แแแแแแ แแ แกแแชแแแ, แ แแ แแแแฃแจแแก แแแแแแแชแแ แแแแแแแแ แแแแ แแแฃแจแแแ 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-แแก แแแแแงแแแแแแ. .
แกแแแแแ แแแชแแแแ แแก แงแแแแแคแแ แ, แแแแแแฎแแแแ? แแแ
แแฎแแ แแแแแ แจแแแฅแแแแ 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.
แแแฎ.1. แแแจแแแแฃแแ แแแแกแแแแแแแแก แแแแแฎแแแแ.
แแแจแแแแฃแ แแแแกแแแแแแ แแแฌแแแแฃแแแแ แแฉแแแแแแก แแแแแขแแแแ แแแขแแแแแก, แ แแแแ แช แแก แแแฉแแแแแแแ แกแฃแ แแแแ 2.
แแ แแแฏแ. 2. แแแแแขแแแแแ แแแคแแ แแแชแแ แแแแกแแแแแแก แจแแกแแฎแแ.
แแแแแขแแแแแ แแแคแแ แแแชแแแก แจแแแแแ, แแฅแแแ แจแแแแซแแแแ แแแฎแแ แแแจแแแแฃแแ แแแแแแแชแแแแ แฎแแแจแ แขแแแแแแแแ, แ แแแแ แช แแแฉแแแแแแแ แแแฎ.3.
แแแฎ 3. แแแจแแแแฃแแ pod.
แฎแแขแแก แแแแ แแแ แฏแแแแ แแฃแแฎแแจแ แฌแ แแแ แแแฌแแแแฃแแแแแ แแฎแกแแแแ แฉแแแแ แแแแแแแชแแ, แ แแแแ แช แแก แแแฉแแแแแแแ 4-แแ.
แแ แแแฏแ. 4. แแแจแแแแฃแแ React แแแแแแแชแแ.
แแแกแแแแ
แแกแ แ แแ, แฉแแแ แแแฉแแแแแ, แแฃ แ แแแแ แฃแแแ แแแฃแจแแแ แแแแแแแแ แแแแก แกแแ แแแ แ แแฅแแแแ แแแแแแแชแแแกแแแแก OpenShift-แแ แแ แกแแแฅแ แแแแแแชแแ แแแแฎแแแแแ แแแแแแแแ แแ แคแแแแฃแ แกแแกแขแแแแกแแแ. แฉแแแ แแกแแแ แแแแแแฎแแแแ, แแฃ แ แแแแ แฃแแแ แแแแแฎแแแแแ แฏแแญแแฃแ แ แแจแแแแแแก แจแแแแแแแก แกแแแฃแแแชแแ OpenShift Pipelines-แแก แแแแแงแแแแแแ. แแ แกแขแแขแแแก แงแแแแ แแแแแแแแแก แแแแ แจแแแแซแแแแ แแฎแแแแ
แแแแแขแแแแแ แ แแกแฃแ แกแแแ (EN)
- แฃแคแแกแ แแแแฅแขแ แแแฃแแ แฌแแแแ
"แแแแแแแแ แแแ OpenShift-แแ: แแแแแแแแแแ แแแฃแแแแแแแแแกแแแแก" แแแแขแแแแแ แแ แแ แแแแขแแ แแแฃแแ Node.js แแแแแแแชแแแแแก แจแแฅแแแ Red Hat OpenShift Application Runtimes-แแกแ แแ Istio-แก แแแแแงแแแแแแ Node.js แแแแแแแชแแแแแก แแแแแ แแแ OpenShift-แแ Chrome DevTools-แแก แแแแแงแแแแแแ แกแแแ แแ แซแแแแแ, แ แแแ แแแแฃแคแแแ Express-แก OpenShift-แแ แแฃแแแแแ Node.js-แแก แแแแแแแ แฎแแแแแกแแฌแแแแแ แแแ แกแแแก แแแแชแฎแแแแแ Red Hat OpenShift แแแแแแแชแแแก Runtimes-แแก แแแฌแแแ Node.js แแแแแแแชแแแแแก แแแแแขแแ แแแแ OpenShift-แแ แแ แแแแแแกแแแ แแ แแแ - แกแฎแแ แกแขแแขแแแแ
OpenShift แแ Kubernetes Red Hat แแแแกแแแขแแ
แแแแแแแแ แแแแแแแ แแแแก แแแแแกแแแ
แฉแแแ แแแฌแงแแแ แแแ แแกแแแแก แแแแแแแ แแแแก แกแแ แแแก แแจแแแแแฃแ แ แแแแแชแแแแแแแก แจแแกแแฎแแ Red Hat OpenShift Container Platform-แแกแ แแ Kubernetes-แแก แแแแแงแแแแแแ:
28 แแแแแกแขแ, แแแแแแแ แ แแแแแ แแขแแ แ "แแแแ แแขแแ แ": แแแแ แแขแแ แแแ OpenShift-แกแ แแ Kubernetes-แจแ 11 แกแแฅแขแแแแแ แ, DeploymentConfig vs Deployment โ โโOpenShift-แก แกแแแชแแคแแแฃแ แ แแแแแ แแแแแแแชแแแแแก แจแแกแแฅแแแแแแ แแ แแแแแแแแแแกแแแแก 25 แกแแฅแขแแแแแ แ, Red Hat OpenShift แแ Machine API 9 แแฅแขแแแแแ แ, แ แแแแ แแแแฃแแแแแแแแ แแแขแแแ แแแแก แฃแแชแแ แแ แแแก 23 แแฅแขแแแแแ แ, แฉแแจแแแแแฃแแ Jenkins, Pipeline-builds, Tekton Red Hat OpenShift แแแแขแแแแแ แแก แแแแขแคแแ แแแจแ
แฌแงแแ แ: www.habr.com