IBM Cloud Docs
공용 저장소에서 소스를 가져오는 빌드 구성 작성

공용 저장소에서 소스를 가져오는 빌드 구성 작성

소스가 공용 저장소에 있는 경우, 공용 저장소에서 소스를 가져올 위치에 대한 정보가 포함된 설정으로 빌드 구성을 작성하십시오. 빌드 출력의 경우 레지스트리에서 빌드한 이미지에 액세스할 수 있도록 레지스트리 암호와 함께 레지스트리 세부 정보를 지정하도록 선택할 수 있습니다. 또는 Code Engine이 소스에서 이미지를 빌드한 후 IBM Cloud Container Registry에 이미지를 저장하도록 선택할 수 있습니다. 이 경우 레지스트리 비밀 번호나 이미지 레지스트리의 위치를 지정할 필요가 없습니다.

빌드 구성을 작성하면 이미지가 작성되는 것이 아니라 이미지를 빌드할 구성이 작성됩니다. 빌드 구성을 참조하여 이미지를 작성하는 빌드를 실행해야 합니다. 빌드가 실행될 때까지 빌드 구성은 유효성이 검증되거나 이미지를 작성하는 데 사용되지 않습니다. 빌드 구성을 사용하면 소스 저장소에 변경사항이 적용되는 경우 등에 여러 후속 이미지 빌드를 사용할 수 있습니다.

.gitignore 파일과 유사하게 작동하는 .ceignore 파일을 사용하여 소스 코드 내에서 특정 파일 패턴을 무시하도록 선택할 수 있습니다. 예를 들어, node.js 애플리케이션의 .ceignore 파일에 대한 항목에는 node_modules.npm이 포함될 수 있습니다. 무시할 더 많은 샘플 파일 패턴을 보려면 GitHub.gitignore 리포지토리를 참조하세요.

콘솔에서 빌드 구성 작성(공용 저장소)

  1. Code Engine 대시보드로 이동하십시오.

  2. 컨테이너 레지스트리를 추가한 프로젝트를 선택하십시오.

  3. 프로젝트 페이지에서 이미지 빌드를 클릭하십시오.

  4. 이미지 빌드 탭에서 작성을 클릭하십시오. 빌드 세부사항을 입력하는 빌드 세부사항 지정 사이드 패널이 열립니다.

  5. 소스 섹션에서 빌드의 이름, 소스 저장소의 URL 및 코드 저장소 액세스를 입력하십시오.

    • 코드가 공개 리포지토리에 있는 경우 HTTPS URL을 사용하고 코드 리포지토리 액세스에 대해 없음을 선택합니다. HTTPS URL의 예는 https://github.com/IBM/CodeEngine입니다.
    • 코드가 개인용 저장소에 있는 경우, 코드 저장소 URL에 SSH URL을 사용하고 기존 코드 저장소 액세스의 이름을 선택하거나 코드 저장소 액세스를 작성하십시오. SSH URL의 예는 git@github.com:IBM/CodeEngine.git입니다.
    • 선택적으로 소스 분기 이름을 선택하십시오. 분기 이름을 제공하지 않고 필드를 비워 두면 Code Engine에서 지정된 저장소의 기본 분기를 자동으로 사용합니다. 다른 분기 이름, 태그 또는 커미트 ID를 입력할 수 있습니다.

    계속하려면 다음을 클릭하십시오.

  6. 전략 섹션에서 사용할 전략을 선택하십시오.

    • Dockerfile을 선택하는 경우 Dockerfile에 대한 대체 경로를 지정할 수도 있습니다.
    • 빌드 리소스 아래에서 빌드 크기를 선택하십시오.

    계속하려면 다음을 클릭하십시오.

  7. 출력 섹션에 컨테이너 이미지의 세부사항을 입력하십시오.

    • 기존 레지스트리 암호를 선택하거나 레지스트리 암호 만들기를 클릭하여 새 레지스트리 암호를 추가합니다.
    • 계정에 있는 Container Registry 인스턴스에 이미지를 구축하는 경우 Code Engine managed secret 선택하면 Code Engine 비밀 번호를 생성하고 관리합니다.
    • 그런 다음 빌드할 이미지의 네임스페이스, 저장소 및 태그를 선택하십시오. Code Engine 네임스페이스를 생성하고 관리하도록 Container Registry 선택할 수 있습니다.
    • 이미지가 Container Registry에 있는 경우 기존 이미지 중에서 선택하거나 새 저장소 또는 태그를 입력할 수 있습니다.
  8. 완료를 클릭하여 빌드 작성을 완료하십시오.

빌드 구성을 작성한 후 빌드를 실행 하여 이미지 파일을 작성해야 합니다. 이미지 파일이 작성된 후 새로 빌드된 이미지 파일을 사용하여 앱을 배치 하거나 작업을 실행 할 수 있습니다.

CLI에서 빌드 구성 작성(공용 저장소)

CLI를 사용하여 빌드 구성을 작성하려면 build create 명령을 사용하십시오. 전체 옵션 목록은 ibmcloud ce build create 명령을 참조하십시오.

build create 명령을 사용하여 Code Engine이 소스에서 이미지를 빌드한 후 IBM Cloud Container Registry에 이미지를 저장하도록 선택할 수 있습니다. 이 자동 액세스 케이스의 경우 레지스트리 비밀 번호나 이미지 레지스트리 위치를 지정할 필요가 없습니다. 또는 빌드 이미지 출력 위치를 지정하고 레지스트리 비밀 번호를 제공하여 Code Engine 빌드 결과에 액세스하여 레지스트리에 푸시할 수 있도록 할 수 있습니다.

CLI에서 빌드 구성 작성(공용 저장소 소스 및 레지스트리에 대한 자동 액세스 사용)

이 경우 Code Engine은 공용 Git 저장소 소스에서 이미지를 빌드한 후 자동 액세스를 사용하여 이미지를 IBM Cloud Container Registry에 자동으로 업로드합니다. Code Engine이 Container Registry에서 이러한 이미지에 자동으로 액세스하는 데 필요한 권한 설정에 대한 자세한 정보는 이미지 레지스트리의 권한 설정을 참조하십시오.

시작하기 전에

  1. 공용 Git 저장소에서 이미지를 빌드하는 빌드 구성을 작성하고 Code Engine에서 이미지를 자동으로 저장하고 액세스하도록 설정하십시오. 예를 들어, 다음 build create 명령은 공용 Git 저장소 https://github.com/IBM/CodeEngine의 소스에서 빌드되는 helloworld-build라는 빌드 구성을 작성합니다. 이 예에서 명령은 기본 dockerfile 전략 및 기본 medium 빌드 크기를 사용합니다. --commit 옵션으로 저장소의 분기 이름을 지정하지 않았기 때문에 Code Engine에서는 지정된 저장소의 기본 분기를 자동으로 사용합니다. 이 Git 저장소의 경우 main입니다. 이미지 레지스트리의 위치나 레지스트리 비밀 번호를 지정하지 않으면 Code Engine 빌드 출력을 자동 액세스와 함께 IBM Cloud Container Registry 푸시합니다.

    ibmcloud ce build create --name helloworld-build --source https://github.com/IBM/CodeEngine --context-dir /hello
    

    출력 예

    Creating build helloworld-build...
    OK
    

    다음 표에는 이 예에서 build create 명령과 함께 사용되는 옵션이 요약되어 있습니다. 명령 및 해당 옵션에 대한 자세한 정보는 ibmcloud ce build create 명령을 참조하십시오.

    명령 설명
    옵션 설명
    --name

    빌드 이름입니다. 프로젝트 내에서 고유한 이름을 사용하십시오. 이 값은 필수입니다.

    • 이름은 소문자로 시작해야 합니다.
    • 이름은 소문자 영숫자로 끝나야 합니다.
    • 이름은 55자 이하여야 하며 문자, 숫자 및 하이픈(-)을 포함할 수 있습니다.
    --source 소스 코드가 포함된 Git 저장소의 URL입니다(예: https://github.com/IBM/CodeEngine).
    --context-dir 빌드팩 파일 또는 Dockerfile이 포함되어 있는 저장소의 디렉토리입니다. 빌드팩 파일 또는 Dockerfile이 서브디렉토리에 포함되어 있는 경우 이 값을 지정하십시오. 이 값은 선택사항입니다.
  2. build get 명령을 사용하여 빌드 상태를 확인하십시오.

    ibmcloud ce build get --name helloworld-build
    

    출력 예

    이미지의 생성된 이름과 자동으로 생성된 레지스트리 비밀 번호의 이름이 ce-auto-icr-private-<region> 형식인 것을 확인합니다.

    Getting build 'helloworld-build'
    OK
    
    Name:          helloworld-build  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-05-24T09:58:43-05:00  
    Build Type:    git  
    Status:        Succeeded  
    Reason:        all validations succeeded
    
    Image:              private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-build
    Registry Secret:    ce-auto-icr-private-us-south  
    Build Strategy:     dockerfile-medium
    Timeout:            10m0s
    Source:             https://github.com/IBM/CodeEngine
    Commit:             main
    Context Directory:  /hello
    Dockerfile:         Dockerfile
    
    

빌드 구성을 작성한 후 빌드를 실행 하여 이미지 파일을 작성해야 합니다. 이미지 파일이 작성된 후 새로 빌드된 이미지 파일을 사용하여 앱을 배치 하거나 작업을 실행 할 수 있습니다.

CLI에서 빌드 구성 작성(공용 저장소 소스 및 레지스트리에 대한 사용자 제공 액세스 사용)

이 경우 Code Engine은 공용 Git 저장소 소스에서 이미지를 빌드한 후 사용자가 제공하는 레지스트리 액세스를 사용하여 이미지를 컨테이너 레지스트리에 업로드합니다.

시작하기 전에

  1. 공개 Git 리포지토리에서 이미지를 빌드하는 빌드 구성을 만들고 레지스트리 비밀을 사용하여 빌드 출력의 이미지 레지스트리 위치를 지정합니다. build create 명령에 이미지 레지스트리의 위치를 제공하는 --image 옵션과 레지스트리에 액세스하는 --registry-secret 옵션을 지정하십시오. 예를 들어, 다음 명령은 공용 Git repo https://github.com/IBM/CodeEngine 에서 빌드하는 helloworld-build2 라는 빌드 구성을 작성하고 myregistry 레지스트리 시크릿을 사용하여 이미지를 us.icr.io/mynamespace/codeengine-helloworld 에 저장합니다. 이 예에서 명령은 기본 dockerfile 전략 및 기본 medium 빌드 크기를 사용합니다. --commit 옵션으로 저장소의 분기 이름을 지정하지 않았기 때문에 Code Engine에서는 지정된 저장소의 기본 분기를 자동으로 사용합니다. 이 Git 저장소의 경우 main입니다.

    --strategy 옵션을 dockerfile 값으로 사용하는 경우 --dockerfile 옵션이 dockerfile의 이름으로 올바르게 설정되었는지 확인하십시오. --strategy 옵션의 기본값은 Dockerfile입니다.

    ibmcloud ce build create --name helloworld-build2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello
    

    출력 예

    Creating build helloworld-build2...
    OK
    

    다음 표에는 이 예에서 build create 명령과 함께 사용되는 옵션이 요약되어 있습니다. 명령 및 해당 옵션에 대한 자세한 정보는 ibmcloud ce build create 명령을 참조하십시오.

    명령 설명
    옵션 설명
    --name

    빌드 이름입니다. 프로젝트 내에서 고유한 이름을 사용하십시오. 이 값은 필수입니다.

    • 이름은 소문자로 시작해야 합니다.
    • 이름은 소문자 영숫자로 끝나야 합니다.
    • 이름은 55자 이하여야 하며 문자, 숫자 및 하이픈(-)을 포함할 수 있습니다.
    --image 이미지 레지스트리의 위치입니다. 위치 형식은 REGISTRY/NAMESPACE/REPOSITORY 또는 REGISTRY/NAMESPACE/REPOSITORY:TAG여야 합니다. 여기서 TAG는 선택사항입니다. TAG를 지정하지 않으면 기본값은 latest입니다.
    --registry-secret 레지스트리에 액세스하는 데 사용되는 레지스트리 비밀 번호입니다. secret create --format registry 명령을 실행하여 레지스트리 시크릿을 추가할 수 있습니다. 레지스트리 비밀은 비공개 레지스트리로 인증하는 데 사용됩니다.
    --source 소스 코드가 포함된 Git 저장소의 URL입니다(예: https://github.com/IBM/CodeEngine).
    --context-dir 빌드팩 파일 또는 Dockerfile이 포함되어 있는 저장소의 디렉토리입니다. 빌드팩 파일 또는 Dockerfile이 서브디렉토리에 포함되어 있는 경우 이 값을 지정하십시오. 이 값은 선택사항입니다.
  2. build get 명령을 사용하여 빌드 상태를 확인하십시오.

    ibmcloud ce build get --name helloworld-build2
    

    출력 예

    Getting build 'helloworld-build2'
    OK
    
    Name:          helloworld-build2  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2021-03-14T14:48:19-05:00  
    Status:        Succeeded  
    Reason:        all validations succeeded
    
    Image:              us.icr.io/mynamespace/codeengine-helloworld
    Registry Secret:    myregistry
    Build Strategy:     dockerfile-medium
    Timeout:            10m0s
    Source:             https://github.com/IBM/CodeEngine
    Commit:             main
    Context Directory:  /hello
    Dockerfile:         Dockerfile
    
    

빌드 구성을 작성한 후 빌드를 실행 하여 이미지 파일을 작성해야 합니다. 이미지 파일이 작성된 후 새로 빌드된 이미지 파일을 사용하여 앱을 배치 하거나 작업을 실행 할 수 있습니다.

명령 유효성 검증 실패를 수신한 경우 시크릿이 있는지 확인하십시오. 이미지에 대한 레지스트리 비밀 --registry-secret 참조하는데 비밀이 존재하지 않는 경우 컨테이너 레지스트리에 액세스하기를 참조하세요. 빌드에 대한 자세한 정보는 문제점 해결 팁을 참조하십시오.