1장. 빌드 실행


빌드를 설치한 후 사용할 buildah 또는 S2I(Source -to-Image ) 빌드를 생성할 수 있습니다. 빌드에 필요하지 않은 사용자 정의 리소스를 삭제할 수도 있습니다.

1.1. buildah 빌드 생성

buildah 빌드를 생성하고 생성된 이미지를 대상 레지스트리로 내보낼 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 Red Hat OpenShift Operator 빌드가 설치되어 있습니다.
  • shipwrightBuild 리소스를 생성했습니다.
  • oc CLI를 설치했습니다.
  • 선택 사항: shp CLI 를 설치했습니다.

프로세스

  1. 빌드 리소스를 생성하고 CLI 중 하나를 사용하여 OpenShift Container Platform 클러스터에 적용합니다.

    예: oc CLI 사용

    $ oc apply -f - <<EOF
    apiVersion: shipwright.io/v1beta1
    kind: Build
    metadata:
      name: buildah-golang-build
    spec:
      source: 
    1
    
        type: Git
        git:
          url: https://github.com/shipwright-io/sample-go
        contextDir: docker-build
      strategy: 
    2
    
        name: buildah
        kind: ClusterBuildStrategy
      paramValues: 
    3
    
      - name: dockerfile
        value: Dockerfile
      output: 
    4
    
        image: image-registry.openshift-image-registry.svc:5000/buildah-example/sample-go-app
    EOF
    Copy to Clipboard Toggle word wrap

    1
    소스 코드가 배치되는 위치입니다.
    2
    컨테이너를 빌드하는 데 사용하는 빌드 전략입니다.
    3
    빌드 전략에 정의된 매개변수입니다. dockerfile strategy 매개변수 값을 설정하려면 출력 이미지를 빌드하는 데 필요한 Dockerfile 위치를 지정합니다.
    4
    빌드된 이미지를 푸시하는 위치입니다. 이 절차 예에서 빌드된 이미지가 OpenShift Container Platform 클러스터 내부 레지스트리로 푸시됩니다. buildah-example 은 현재 프로젝트의 이름입니다. 이미지를 푸시할 수 있도록 지정된 프로젝트가 있는지 확인합니다.

    예: shp CLI 사용

    $ 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 Toggle word wrap

    1
    소스 코드가 배치되는 위치입니다.
    2
    컨테이너를 빌드하는 데 사용하는 빌드 전략입니다.
    3
    빌드 전략에 정의된 매개변수입니다. dockerfile strategy 매개변수 값을 설정하려면 출력 이미지를 빌드하는 데 필요한 Dockerfile 위치를 지정합니다.
    4
    빌드된 이미지를 푸시하는 위치입니다. 이 절차 예에서 빌드된 이미지가 OpenShift Container Platform 클러스터 내부 레지스트리로 푸시됩니다. buildah-example 은 현재 프로젝트의 이름입니다. 이미지를 푸시할 수 있도록 지정된 프로젝트가 있는지 확인합니다.
  2. CLI 중 하나를 사용하여 Build 리소스가 생성되었는지 확인합니다.

    예: oc CLI 사용

    $ oc get builds.shipwright.io buildah-golang-build
    Copy to Clipboard Toggle word wrap

    예: shp CLI 사용

    $ shp build list
    Copy to Clipboard Toggle word wrap

  3. BuildRun 리소스를 생성하고 CLI 중 하나를 사용하여 OpenShift Container Platform 클러스터에 적용합니다.

    예: oc CLI 사용

    $ oc apply -f - <<EOF
    apiVersion: shipwright.io/v1beta1
    kind: BuildRun
    metadata:
      name: buildah-golang-buildrun
    spec:
      build:
        name: buildah-golang-build 
    1
    
    EOF
    Copy to Clipboard Toggle word wrap

    1
    spec.build.name 필드는 실행할 각 빌드를 나타내며 동일한 네임스페이스에서 사용할 수 있어야 합니다.

    예: shp CLI 사용

    $ shp build run buildah-golang-build --follow 
    1
    Copy to Clipboard Toggle word wrap

    1
    선택 사항: --follow 플래그를 사용하면 출력 결과에서 빌드 로그를 볼 수 있습니다.
  4. 다음 명령 중 하나를 실행하여 BuildRun 리소스가 생성되었는지 확인합니다.

    예: oc CLI 사용

    $ oc get buildrun buildah-golang-buildrun
    Copy to Clipboard Toggle word wrap

    예: shp CLI 사용

    $ shp buildrun list
    Copy to Clipboard Toggle word wrap

    BuildRun 리소스는 TaskRun 리소스를 생성하여 빌드 전략 단계를 실행하기 위해 Pod를 생성합니다.

검증

  1. 모든 컨테이너가 작업을 완료한 후 다음을 확인합니다.

    • Pod에 STATUS 필드가 Completed 로 표시되는지 확인합니다.

      $ oc get pods -w
      Copy to Clipboard Toggle word wrap

      출력 예

      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
      Copy to Clipboard Toggle word wrap

    • TaskRun 리소스에 SUCCEEDED 필드가 True 로 표시되는지 확인합니다.

      $ oc get tr
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME                           SUCCEEDED  REASON     STARTTIME   COMPLETIONTIME
      buildah-golang-buildrun-dtrg2  True       Succeeded  11m         8m51s
      Copy to Clipboard Toggle word wrap

    • BuildRun 리소스에 SUCCEEDED 필드가 True 로 표시되는지 확인합니다.

      $ oc get br
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME                     SUCCEEDED   REASON       STARTTIME     COMPLETIONTIME
      buildah-golang-buildrun  True        Succeeded    13m           11m
      Copy to Clipboard Toggle word wrap

      확인 중에 빌드 실행이 실패하면 BuildRun 리소스의 status.failure Details 필드를 확인하여 Pod 또는 컨테이너에서 오류가 발생한 정확한 지점을 확인할 수 있습니다.

      참고

      컨테이너 중 하나가 작업을 완료했기 때문에 Pod가 NotReady 상태로 전환될 수 있습니다. 이는 예상된 동작입니다.

  2. build.spec.output.image 필드에 지정된 레지스트리로 이미지가 푸시되었는지 확인합니다. 내부 레지스트리에 액세스할 수 있는 노드에서 다음 명령을 실행하여 이미지를 가져올 수 있습니다.

    $ podman pull image-registry.openshift-image-registry.svc:5000/<project>/<image> 
    1
    Copy to Clipboard Toggle word wrap
    1
    Build 리소스를 생성할 때 사용하는 프로젝트 이름 및 이미지 이름입니다. 예를 들어 buildah-example 을 프로젝트 이름으로 사용하고 sample-go-app 을 이미지 이름으로 사용할 수 있습니다.

1.1.1. 네트워크 제한 환경에서 buildah 빌드 생성

buildah 빌드 전략에 필요한 이미지를 미러링하여 네트워크 제한 환경에서 buildah 빌드를 생성할 수 있습니다.

사전 요구 사항

  • 클러스터는 buildah 빌드를 생성하는 데 사용할 수 있는 Git 소스에 연결하고 상호 작용할 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 buildah 빌드 전략에 필요한 이미지를 미러링합니다.

    $ oc image mirror --insecure -a <registry_authentication> registry.redhat.io/ubi8/buildah@sha256:1c89cc3cab0ac0fc7387c1fe5e63443468219aab6fd531c8dad6d22fd999819e <mirror_registry>/<repo>/ubi8_buildah
    Copy to Clipboard Toggle word wrap
  2. " buildah 빌드 생성" 섹션에 언급된 단계를 수행합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat