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 도구 체인에 대해 다음 옵션을 설정할 수 있습니다.
| 옵션 | 설명 |
|---|---|
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, xlarge 및 xxlarge. 자세한 내용은 빌드의 크기 결정을 참조하십시오. |
build-strategy |
이미지를 빌드하는 데 사용할 전략입니다. 유효값은 dockerfile 및 buildpacks입니다. |
build-timeout |
빌드 실행 성공 또는 실패 전 경과 시간(초)입니다. 기본값은 1200. |
build-use-native-docker |
소스를 컨테이너화하기 위해 Code Engine 빌드 대신 기본 Docker 빌드 기능을 사용하도록 사전수신동의할 선택적 특성입니다. build-strategy 가 dockerfile 로 설정된 경우에만 이 값을 선택할 수 있습니다. 올바른 값은 true 및 false입니다. |
code-engine-project |
이 애플리케이션을 포함하는 프로젝트입니다. |
cpu |
애플리케이션 인스턴스에 대해 설정된 CPU 양입니다. 올바른 값은 지원되는 메모리와 CPU 조합을 참조하십시오. 기본값은 1입니다. |
deployment-type |
배치 유형을 지정합니다. 유효값은 application 및 job입니다. |
ephemeral-storage |
애플리케이션 인스턴스에 대해 설정할 임시 스토리지 양입니다. 메가바이트의 경우 M을 사용하고 기가바이트의 경우 G를 사용하십시오. |
git-token |
Git 저장소의 액세스 토큰입니다. |
image-name |
이 애플리케이션에 사용되는 이미지의 이름입니다. 형식은 REGISTRY/NAMESPACE/REPOSITORY:TAG입니다. 여기서, REGISTRY 및 TAG는 선택사항입니다. 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 서비스 인스턴스를 애플리케이션에 바인드하는 서비스 바인딩입니다. 이 값은 "{"<SERVICE_INSTANCE_NAME>": "<BINDING_PREFIX>"}" 형식입니다. 예를 들어, "{"object-store-rg-e": "CLOUD_OBJECT_STORAGE"}입니다.
이 값은 base64에 있어야 합니다. |
추가 옵션은 도구 체인 설정에서 파이프라인에 대한 환경 특성 을 참조하십시오.
도구 체인 문제점 해결
다음 주제를 사용하여 Code Engine 도구 체인의 문제점을 해결하십시오.