빌드 작업
1장. 빌드 실행 링크 복사링크가 클립보드에 복사되었습니다!
빌드를 설치한 후 사용할 buildah 또는 S2I(Source -to-Image ) 빌드를 생성할 수 있습니다. 빌드에 필요하지 않은 사용자 정의 리소스를 삭제할 수도 있습니다.
1.1. buildah 빌드 생성 링크 복사링크가 클립보드에 복사되었습니다!
buildah 빌드를 생성하고 생성된 이미지를 대상 레지스트리로 내보낼 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 Red Hat OpenShift Operator 빌드가 설치되어 있습니다.
-
shipwrightBuild리소스를 생성했습니다. -
ocCLI를 설치했습니다. -
선택 사항:
shpCLI 를 설치했습니다.
프로세스
빌드리소스를 생성하고 CLI 중 하나를 사용하여 OpenShift Container Platform 클러스터에 적용합니다.예:
ocCLI 사용Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 소스 코드가 배치되는 위치입니다.
- 2
- 컨테이너를 빌드하는 데 사용하는 빌드 전략입니다.
- 3
- 빌드 전략에 정의된 매개변수입니다.
dockerfilestrategy 매개변수 값을 설정하려면 출력 이미지를 빌드하는 데 필요한 Dockerfile 위치를 지정합니다. - 4
- 빌드된 이미지를 푸시하는 위치입니다. 이 절차 예에서 빌드된 이미지가 OpenShift Container Platform 클러스터 내부 레지스트리로 푸시됩니다.
buildah-example은 현재 프로젝트의 이름입니다. 이미지를 푸시할 수 있도록 지정된 프로젝트가 있는지 확인합니다.
예:
shpCLI 사용shp build create buildah-golang-build \ --source-url="https://github.com/redhat-openshift-builds/samples" --source-context-dir="buildah-build" \ --strategy-name="buildah" \ --dockerfile="Dockerfile" \ --output-image="image-registry.openshift-image-registry.svc:5000/buildah-example/go-app"
$ shp build create buildah-golang-build \ --source-url="https://github.com/redhat-openshift-builds/samples" --source-context-dir="buildah-build" \1 --strategy-name="buildah" \2 --dockerfile="Dockerfile" \3 --output-image="image-registry.openshift-image-registry.svc:5000/buildah-example/go-app"4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 소스 코드가 배치되는 위치입니다.
- 2
- 컨테이너를 빌드하는 데 사용하는 빌드 전략입니다.
- 3
- 빌드 전략에 정의된 매개변수입니다.
dockerfilestrategy 매개변수 값을 설정하려면 출력 이미지를 빌드하는 데 필요한 Dockerfile 위치를 지정합니다. - 4
- 빌드된 이미지를 푸시하는 위치입니다. 이 절차 예에서 빌드된 이미지가 OpenShift Container Platform 클러스터 내부 레지스트리로 푸시됩니다.
buildah-example은 현재 프로젝트의 이름입니다. 이미지를 푸시할 수 있도록 지정된 프로젝트가 있는지 확인합니다.
CLI 중 하나를 사용하여
Build리소스가 생성되었는지 확인합니다.예:
ocCLI 사용oc get builds.shipwright.io buildah-golang-build
$ oc get builds.shipwright.io buildah-golang-buildCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예:
shpCLI 사용shp build list
$ shp build listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRun리소스를 생성하고 CLI 중 하나를 사용하여 OpenShift Container Platform 클러스터에 적용합니다.예:
ocCLI 사용Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
spec.build.name필드는 실행할 각 빌드를 나타내며 동일한 네임스페이스에서 사용할 수 있어야 합니다.
예:
shpCLI 사용shp build run buildah-golang-build --follow
$ shp build run buildah-golang-build --follow1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 선택 사항:
--follow플래그를 사용하면 출력 결과에서 빌드 로그를 볼 수 있습니다.
다음 명령 중 하나를 실행하여
BuildRun리소스가 생성되었는지 확인합니다.예:
ocCLI 사용oc get buildrun buildah-golang-buildrun
$ oc get buildrun buildah-golang-buildrunCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예:
shpCLI 사용shp buildrun list
$ shp buildrun listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRun리소스는TaskRun리소스를 생성하여 빌드 전략 단계를 실행하기 위해 Pod를 생성합니다.
검증
모든 컨테이너가 작업을 완료한 후 다음을 확인합니다.
Pod에
STATUS필드가Completed로 표시되는지 확인합니다.oc get pods -w
$ oc get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE buildah-golang-buildrun-dtrg2-pod 2/2 Running 0 4s buildah-golang-buildrun-dtrg2-pod 1/2 NotReady 0 7s buildah-golang-buildrun-dtrg2-pod 0/2 Completed 0 55s
NAME READY STATUS RESTARTS AGE buildah-golang-buildrun-dtrg2-pod 2/2 Running 0 4s buildah-golang-buildrun-dtrg2-pod 1/2 NotReady 0 7s buildah-golang-buildrun-dtrg2-pod 0/2 Completed 0 55sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각
TaskRun리소스에SUCCEEDED필드가True로 표시되는지 확인합니다.oc get tr
$ oc get trCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun-dtrg2 True Succeeded 11m 8m51s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun-dtrg2 True Succeeded 11m 8m51sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각
BuildRun리소스에SUCCEEDED필드가True로 표시되는지 확인합니다.oc get br
$ oc get brCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun True Succeeded 13m 11m
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun True Succeeded 13m 11mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 확인 중에 빌드 실행이 실패하면
BuildRun리소스의status.failure Details필드를 확인하여 Pod 또는 컨테이너에서 오류가 발생한 정확한 지점을 확인할 수 있습니다.참고컨테이너 중 하나가 작업을 완료했기 때문에 Pod가
NotReady상태로 전환될 수 있습니다. 이는 예상된 동작입니다.
build.spec.output.image필드에 지정된 레지스트리로 이미지가 푸시되었는지 확인합니다. 내부 레지스트리에 액세스할 수 있는 노드에서 다음 명령을 실행하여 이미지를 가져올 수 있습니다.podman pull image-registry.openshift-image-registry.svc:5000/<project>/<image>
$ podman pull image-registry.openshift-image-registry.svc:5000/<project>/<image>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Build리소스를 생성할 때 사용하는 프로젝트 이름 및 이미지 이름입니다. 예를 들어buildah-example을 프로젝트 이름으로 사용하고sample-go-app을 이미지 이름으로 사용할 수 있습니다.
1.1.1. 네트워크 제한 환경에서 buildah 빌드 생성 링크 복사링크가 클립보드에 복사되었습니다!
buildah 빌드 전략에 필요한 이미지를 미러링하여 네트워크 제한 환경에서 buildah 빌드를 생성할 수 있습니다.
사전 요구 사항
- 클러스터는 buildah 빌드를 생성하는 데 사용할 수 있는 Git 소스에 연결하고 상호 작용할 수 있습니다.
프로세스
다음 명령을 실행하여
buildah빌드 전략에 필요한 이미지를 미러링합니다.oc image mirror --insecure -a <registry_authentication> registry.redhat.io/ubi8/buildah@sha256:1c89cc3cab0ac0fc7387c1fe5e63443468219aab6fd531c8dad6d22fd999819e <mirror_registry>/<repo>/ubi8_buildah
$ oc image mirror --insecure -a <registry_authentication> registry.redhat.io/ubi8/buildah@sha256:1c89cc3cab0ac0fc7387c1fe5e63443468219aab6fd531c8dad6d22fd999819e <mirror_registry>/<repo>/ubi8_buildahCopy to Clipboard Copied! Toggle word wrap Toggle overflow - " buildah 빌드 생성" 섹션에 언급된 단계를 수행합니다.
1.2. S2I(Source-to-Image) 빌드 생성 링크 복사링크가 클립보드에 복사되었습니다!
S2I( Source-to-Image ) 빌드를 생성하고 생성된 이미지를 사용자 지정 Quay 리포지토리로 내보낼 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 Red Hat OpenShift Operator 빌드가 설치되어 있습니다.
-
shipwrightBuild리소스를 생성했습니다. -
ocCLI를 설치했습니다. -
선택 사항:
shpCLI 를 설치했습니다.
프로세스
빌드리소스를 생성하고 CLI 중 하나를 사용하여 OpenShift Container Platform 클러스터에 적용합니다.예:
ocCLI 사용Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 소스 코드가 배치되는 위치입니다.
- 2
- 컨테이너를 빌드하는 데 사용하는 빌드 전략입니다.
- 3
- 빌드 전략에 정의된 매개변수입니다.
builder-image전략 매개변수의 값을 설정하려면 출력 이미지를 빌드하는 데 필요한 빌더 이미지 위치를 지정합니다. - 4
- 빌드된 이미지를 푸시하는 위치입니다. 빌드된 이미지를 사용자 지정 Quay.io 리포지토리로 내보낼 수 있습니다.
리포지토리를 유효한 Quay.io 조직 또는 Quay 사용자 이름으로 교체합니다. - 5
- 컨테이너 이미지를 푸시하기 위한 인증 정보를 저장하는 시크릿 이름입니다. 인증을 위해
docker-registry유형의 보안을 생성하려면 "Authentication to container registries"를 참조하십시오.
예:
shpCLI 사용Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 소스 코드가 배치되는 위치입니다.
- 2
- 컨테이너를 빌드하는 데 사용하는 빌드 전략입니다.
- 3
- 빌드 전략에 정의된 매개변수입니다.
builder-image전략 매개변수의 값을 설정하려면 출력 이미지를 빌드하는 데 필요한 빌더 이미지 위치를 지정합니다. - 4
- 빌드된 이미지를 푸시하는 위치입니다. 빌드된 이미지를 사용자 지정 Quay.io 리포지토리로 내보낼 수 있습니다.
리포지토리를 유효한 Quay.io 조직 또는 Quay 사용자 이름으로 교체합니다. - 5
- 컨테이너 이미지를 푸시하기 위한 인증 정보를 저장하는 시크릿 이름입니다. 인증을 위해
docker-registry유형의 보안을 생성하려면 "Authentication to container registries"를 참조하십시오.
CLI 중 하나를 사용하여
Build리소스가 생성되었는지 확인합니다.예:
ocCLI 사용oc get builds.shipwright.io s2i-nodejs-build
$ oc get builds.shipwright.io s2i-nodejs-buildCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예:
shpCLI 사용shp build list
$ shp build listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRun리소스를 생성하고 CLI 중 하나를 사용하여 OpenShift Container Platform 클러스터에 적용합니다.예:
ocCLI 사용Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
spec.build.name필드는 실행할 각 빌드를 나타내며 동일한 네임스페이스에서 사용할 수 있어야 합니다.
예:
shpCLI 사용shp build run s2i-nodejs-build --follow
$ shp build run s2i-nodejs-build --follow1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 선택 사항:
--follow플래그를 사용하면 출력 결과에서 빌드 로그를 볼 수 있습니다.
다음 명령 중 하나를 실행하여
BuildRun리소스가 생성되었는지 확인합니다.예:
ocCLI 사용oc get buildrun s2i-nodejs-buildrun
$ oc get buildrun s2i-nodejs-buildrunCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예:
shpCLI 사용shp buildrun list
$ shp buildrun listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRun리소스는TaskRun리소스를 생성하여 빌드 전략 단계를 실행하기 위해 Pod를 생성합니다.
검증
모든 컨테이너가 작업을 완료한 후 다음을 확인합니다.
Pod에
STATUS필드가Completed로 표시되는지 확인합니다.oc get pods -w
$ oc get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE s2i-nodejs-buildrun-phxxm-pod 2/2 Running 0 10s s2i-nodejs-buildrun-phxxm-pod 1/2 NotReady 0 14s s2i-nodejs-buildrun-phxxm-pod 0/2 Completed 0 2m
NAME READY STATUS RESTARTS AGE s2i-nodejs-buildrun-phxxm-pod 2/2 Running 0 10s s2i-nodejs-buildrun-phxxm-pod 1/2 NotReady 0 14s s2i-nodejs-buildrun-phxxm-pod 0/2 Completed 0 2mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각
TaskRun리소스에SUCCEEDED필드가True로 표시되는지 확인합니다.oc get tr
$ oc get trCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun-phxxm True Succeeded 2m39s 13s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun-phxxm True Succeeded 2m39s 13sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각
BuildRun리소스에SUCCEEDED필드가True로 표시되는지 확인합니다.oc get br
$ oc get brCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun True Succeeded 2m41s 15s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun True Succeeded 2m41s 15sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 확인 중에 빌드 실행이 실패하면
BuildRun리소스의status.failure Details필드를 확인하여 Pod 또는 컨테이너에서 오류가 발생한 정확한 지점을 확인할 수 있습니다.참고컨테이너 중 하나가 작업을 완료했기 때문에 Pod가
NotReady상태로 전환될 수 있습니다. 이는 예상된 동작입니다.
build.spec.output.image필드에 지정된 레지스트리로 이미지가 푸시되었는지 확인합니다. 레지스트리에 로그인한 후 다음 명령을 실행하여 이미지를 가져올 수 있습니다.podman pull quay.io/<repo>/<image>
$ podman pull quay.io/<repo>/<image>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Build리소스를 생성할 때 사용하는 리포지토리 이름 및 이미지 이름입니다. 예를 들어s2i-nodejs-example을 이미지 이름으로 사용할 수 있습니다.
1.2.1. 네트워크 제한 환경에서 S2I(Source-to-Image) 빌드 생성 링크 복사링크가 클립보드에 복사되었습니다!
S2I(Source -to-Image) 빌드 전략에 필요한 이미지를 미러링하여 네트워크 제한 환경에서 S2I(Source -to-Image ) 빌드를 생성할 수 있습니다.
사전 요구 사항
- 클러스터는 S2I(Source-to-Image) 빌드를 생성하는 데 사용할 수 있는 Git 소스에 연결하고 상호 작용할 수 있습니다.
-
로컬 레지스트리에 S2I(Source-
to-Image) 빌드를 생성하는 데 필요한 builder-image가 있어야 합니다. 로컬 레지스트리에 builder-image가 없는 경우 소스 이미지를 미러링합니다.
프로세스
다음 명령을 실행하여
source-to-image빌드 전략에 필요한 이미지를 미러링합니다.oc image mirror --insecure -a <registry_authentication> registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:d041c1bbe503d152d0759598f79802e257816d674b342670ef61c6f9e6d401c5 <mirror_registry>/<repo>/source-to-image-source-to-image-rhel8
$ oc image mirror --insecure -a <registry_authentication> registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:d041c1bbe503d152d0759598f79802e257816d674b342670ef61c6f9e6d401c5 <mirror_registry>/<repo>/source-to-image-source-to-image-rhel8Copy to Clipboard Copied! Toggle word wrap Toggle overflow - "Source-to-image 빌드 생성" 섹션에 언급된 단계를 수행합니다.
1.3. 로그 보기 링크 복사링크가 클립보드에 복사되었습니다!
빌드 실행의 로그를 보고 런타임 오류를 식별하고 해결할 수 있습니다.
사전 요구 사항
-
ocCLI를 설치했습니다. -
선택 사항:
shpCLI를 설치했습니다.
프로세스
CLI 중 하나를 사용하여 실행되는 빌드의 로그를 확인합니다.
ocCLI 사용oc logs <buildrun_resource_name>
$ oc logs <buildrun_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow shpCLI 사용shp buildrun logs <buildrun_resource_name>
$ shp buildrun logs <buildrun_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. 리소스 삭제 링크 복사링크가 클립보드에 복사되었습니다!
프로젝트에 필요하지 않은 경우 Build,BuildRun 또는 BuildStrategy 리소스를 삭제할 수 있습니다.
사전 요구 사항
-
ocCLI를 설치했습니다. -
선택 사항:
shpCLI를 설치했습니다.
프로세스
CLI 중 하나를 사용하여
Build리소스를 삭제합니다.ocCLI 사용oc delete builds.shipwright.io <build_resource_name>
$ oc delete builds.shipwright.io <build_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow shpCLI 사용shp build delete <build_resource_name>
$ shp build delete <build_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CLI 중 하나를 사용하여
BuildRun리소스를 삭제합니다.ocCLI 사용oc delete buildrun <buildrun_resource_name>
$ oc delete buildrun <buildrun_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow shpCLI 사용shp buildrun delete <buildrun_resource_name>
$ shp buildrun delete <buildrun_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
BuildStrategy리소스를 삭제합니다.ocCLI 사용oc delete buildstrategies <buildstartegy_resource_name>
$ oc delete buildstrategies <buildstartegy_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Legal Notice
링크 복사링크가 클립보드에 복사되었습니다!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.