Documentation for this version is no longer maintained.
View documentation for the latest supported version.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 빌드 생성" 섹션에 언급된 단계를 수행합니다.