Code Engine 워크로드를 Continuous Delivery 와 통합

Continuous Delivery로 도구 체인을 작성하여 IBM Cloud® Code Engine 워크로드의 빌드 및 배치를 자동화할 수 있습니다. 저장소에서 소스 코드를 가져온 후 앱 또는 작업을 빌드하고 배치하는 도구 체인을 작성할 수 있습니다. 저장소에서 소스 코드를 업데이트할 때마다 도구 체인이 자동으로 업데이트된 코드를 가져온 후 앱 또는 작업을 빌드하고 다시 배치합니다.

시작하기 전에

도구 체인을 시작하기 전에 다음을 수행하십시오.

  • Code Engine 프로젝트 를 작성하거나 식별하십시오. 이러한 리소스는 콘솔 또는 CLI를 사용하여 만들 수 있습니다. 자세한 정보는 Code Engine 프로젝트 를 참조하십시오.

  • Continuous Delivery 서비스의 인스턴스를 작성하거나 식별하십시오.

  • IBM Cloud Container Registry 네임스페이스를 작성하거나 식별하십시오. 네임스페이스 작성에 대한 자세한 정보는 IBM Cloud Container Registry 서비스를 참조하십시오.

도구 체인에 대한 액세스 구성

도구 체인을 사용하여 앱 또는 작업을 빌드하고 배치하려면 IAM에서 다음 권한을 설정하십시오.

IBM Cloud Container Registry

  • 리더: 컨테이너 레지스트리에서 이미지를 가져옵니다.
  • 작성자: 작성된 이미지를 대상 네임스페이스에 푸시합니다.
  • 관리자: 존재하지 않는 경우 지정된 네임스페이스를 작성합니다.
  • 관리자: 앱 또는 작업에 사용할 Code Engine 레지스트리 시크릿을 설정하는 데 필요한 서비스 ID, 정책 및 API키를 작성합니다.

Code Engine

  • 편집기: Code Engine 프로젝트에 액세스하거나 프로젝트가 없는 경우 프로젝트를 작성합니다.
  • 작성자: Code Engine 프로젝트 내에서 앱, 작업 및 시크릿을 관리합니다.

리소스 그룹:

  • 뷰어: Code Engine 프로젝트가 있는 리소스 그룹을 봅니다.

앱이 다른 IBM Cloud 서비스를 바인드하도록 하려면 다음 추가 권한을 설정해야 합니다.

모든 ID 및 액세스 사용 서비스

  • 관리자: 개별 서비스를 Code Engine 앱 또는 작업에 연결하기 위해 서비스 신임 정보를 유지보수하는 데 사용되는 Code Engine 서비스 액세스 시크릿을 설정하기 위해 서비스 ID, 정책 및 API키를 작성합니다.

도구 체인 작성

도구 체인 작성 을 선택한 후 Code Engine 템플리트를 선택하여 도구 체인 페이지 에서 도구 체인을 작성할 수 있습니다. 튜토리얼을 사용해 보시겠습니까? Code Engine 를 참조하십시오.

도구 체인의 Code Engine 옵션

ci-pipeline Configuration 를 편집하고 환경 특성을 선택하여 Code Engine 도구 체인에 대해 다음 옵션을 설정할 수 있습니다.

툴체인의Code Engine 옵션
옵션 설명
apikey 이 도구 체인에 사용되는 IBM Cloud API키입니다.
app-concurrency 동시에 처리할 수 있는 인스턴스당 최대 요청 수입니다. 기본값은 100입니다.
app-deployment-timeout 빌드 성공 또는 실패 전 경과 시간(초)입니다.
app-health-endpoint 앱 상태 엔드포인트입니다 (예: /health).
app-max-scale 이 애플리케이션에 사용할 수 있는 최대 인스턴스 수입니다. 이 값을 0으로 설정하면 필요에 따라 애플리케이션이 스케일링됩니다. 애플리케이션 스케일링은 애플리케이션 프로젝트의 리소스 할당량에 따라 인스턴스에 의해서만 제한됩니다. Code Engine의 한계 및 할당량을 참조하십시오. 기본값은 10입니다.
app-min-scale 이 애플리케이션에 사용할 수 있는 최소 인스턴스 수입니다. 이 옵션은 필요하지 않을 때 실행 중인 인스턴스가 없도록 하는 데 유용합니다. 이 값은 선택사항입니다. 기본값은 0입니다.
app-name 애플리케이션의 이름입니다. 프로젝트 내에서 고유한 이름을 사용하십시오.
app-port 애플리케이션이 들어오는 연결을 수신 대기하는 포트입니다. 형식은 [NAME:]PORT입니다. 여기서 [NAME:]은 선택적입니다. If [NAME:] is specified, valid values are h2c or http1. 기본적으로 Code Engine 앱이 포트 8080에서 들어오는 연결을 수신 대기한다고 가정합니다.
app-visibility 애플리케이션에 대한 가시성입니다. 유효한 값은 public, private, project. 가시성을 public으로 설정하면 앱이 공용 인터넷 또는 Code Engine 프로젝트 내의 컴포넌트로부터 요청을 수신할 수 있습니다. Code Engine 애플리케이션에 대한 가시성 옵션 을 참조하십시오.
branch 리포지토리에서 빌드팩 파일 또는 Docker파일이 포함된 브랜치입니다. 기본값은 main입니다.
build-size 사용된 리소스의 양을 판별할 빌드 크기입니다. 유효한 값은 small, medium, large, xlargexxlarge. 자세한 내용은 빌드의 크기 결정을 참조하십시오.
build-strategy 이미지를 빌드하는 데 사용할 전략입니다. 유효값은 dockerfilebuildpacks입니다.
build-timeout 빌드 실행 성공 또는 실패 전 경과 시간(초)입니다. 기본값은 1200.
build-use-native-docker 소스를 컨테이너화하기 위해 Code Engine 빌드 대신 기본 Docker 빌드 기능을 사용하도록 사전수신동의할 선택적 특성입니다. build-strategydockerfile 로 설정된 경우에만 이 값을 선택할 수 있습니다. 올바른 값은 truefalse입니다.
code-engine-project 이 애플리케이션을 포함하는 프로젝트입니다.
cpu 애플리케이션 인스턴스에 대해 설정된 CPU 양입니다. 올바른 값은 지원되는 메모리와 CPU 조합을 참조하십시오. 기본값은 1입니다.
deployment-type 배치 유형을 지정합니다. 유효값은 applicationjob입니다.
ephemeral-storage 애플리케이션 인스턴스에 대해 설정할 임시 스토리지 양입니다. 메가바이트의 경우 M을 사용하고 기가바이트의 경우 G를 사용하십시오.
git-token Git 저장소의 액세스 토큰입니다.
image-name 이 애플리케이션에 사용되는 이미지의 이름입니다. 형식은 REGISTRY/NAMESPACE/REPOSITORY:TAG입니다. 여기서, REGISTRYTAG는 선택사항입니다. REGISTRY를 지정하지 않으면 기본값은 docker.io입니다. TAG를 지정하지 않으면 기본값은 latest입니다.
memory 애플리케이션 인스턴스에 대해 설정된 메모리 양입니다. 메가바이트는 M을, 기가바이트는 G를 사용합니다. 올바른 값은 지원되는 메모리와 CPU 조합을 참조하십시오. 기본값은 4G입니다.
path-to-context 빌드팩 파일 또는 Dockerfile이 포함되어 있는 저장소의 디렉토리입니다.
path-to-dockerfile Dockerfile의 경로입니다. 이름이 Dockerfile이 아닌 경우에만 이 옵션을 지정하십시오.
pipeline-debug 파이프라인 디버그 모드입니다. 값은 0 또는 1 수 있습니다. 기본값은 0 입니다.
region Code Engine 프로젝트가 위치한 지역입니다.
registry-namespace 빌드된 이미지를 저장하는 컨테이너 레지스트리 네임스페이스입니다.
registry-region 컨테이너 레지스트리 영역입니다.
resource-group Code Engine 프로젝트를 포함하는 리소스 그룹입니다.
service-bindings IBM Cloud 서비스 인스턴스를 애플리케이션에 바인드하는 서비스 바인딩입니다. 이 값은 "{&quot;<SERVICE_INSTANCE_NAME>&quot;: &quot;<BINDING_PREFIX>&quot;}" 형식입니다. 예를 들어, "{&quot;object-store-rg-e&quot;: &quot;CLOUD_OBJECT_STORAGE&quot;}입니다. 이 값은 base64에 있어야 합니다.

추가 옵션은 도구 체인 설정에서 파이프라인에 대한 환경 특성 을 참조하십시오.

도구 체인 문제점 해결

다음 주제를 사용하여 Code Engine 도구 체인의 문제점을 해결하십시오.