빌드 계획

IBM Cloud® Code Engine을 사용하여 이미지 빌드를 시작하기 전에 빌드에 대해 가지고 있는 서로 다른 옵션을 알아보십시오.

빌드 또는 이미지 빌드는 소스 코드에서 컨테이너 이미지를 작성하는 데 사용할 수 있는 메커니즘입니다. Code Engine은 Dockerfile 및 클라우드 네이티브 빌드팩에서의 빌드를 지원합니다.

컨테이너 레지스트리에 이미지 빌드가 있고 이미지가 인텔 기반이 아닌 프로세서로 빌드된 경우 Code Engine 는 컨테이너 이미지를 실행할 수 없습니다. Code Engine 는 인텔 기반 프로세싱을 사용합니다. 인텔 프로세서를 사용하는 경우 자체 이미지를 구축할 수 있습니다( x86 프로세서). Code Engine 에서 빌드 프로세스를 처리하도록 선택할 수도 있습니다.

Code Engine은 사용자 정의 리소스 정의(CRD) 메소드를 제공합니다. 자세한 내용은 소스-대-이미지 CRD 방법을 참조하세요.

소스 위치 준비

Code Engine에서 소스 코드에 액세스할 수 있으려면 Git 저장소 또는 로컬 워크스테이션의 액세스 가능한 위치에서 소스 코드를 사용할 수 있도록 설정해야 합니다.

Git 저장소
예를 들어 Git 리포지토리에 코드를 저장합니다 GitHub 또는 GitLab. 코드는 저장소의 최상위 레벨 또는 서브디렉토리에 있을 수 있습니다. 소스 저장소가 공용이 아닌 경우 Code Engine에 액세스 권한을 추가해야 합니다.
로컬 워크스테이션
코드를 로컬 워크스테이션에 저장하십시오. 로컬 디렉토리에서 코드를 가져오는 빌드를 제출하면 소스 코드가 아카이브 파일로 압축되어 IBM Cloud Container Registry 인스턴스에 업로드됩니다. 소스 이미지는 빌드 이미지와 동일한 네임스페이스에 작성됩니다. 로컬 빌드의 경우 IBM Cloud Container Registry만 대상으로 지정할 수 있습니다. .gitignore 파일과 유사하게 작동하는 .ceignore 파일을 사용하여 소스 코드 내에서 특정 파일 패턴을 무시하도록 선택할 수 있습니다. 예를 들어, node.js 애플리케이션의 .ceignore 파일에 대한 항목에는 node_modules.npm이 포함될 수 있습니다. 무시할 샘플 파일 패턴을 더 보려면 GitHub.gitignore 리포지토리를 참조하세요.

빌드 전략 선택

Code Engine은 다음 전략 중 하나를 사용하여 컨테이너 이미지를 빌드할 수 있습니다.

Dockerfile

도구를 사용하는 도커파일 빌드 BuildKit 도구를 사용하는 빌드. 이 전략을 사용하려면 소스 저장소에 Dockerfile을 추가하십시오. 이 Dockerfile은 소스 저장소에서 컨테이너 이미지를 빌드하는 데 필요한 단계를 설명합니다. 예를 들어, Dockerfile에는 소스의 정적 파일을 웹 서비스에서 호스팅할 컨테이너로 복사하는 단계가 포함될 수 있습니다. 선택한 언어로 작성된 소스 코드를 컴파일하고 결과 2진을 컨테이너 이미지에 추가할 수 있습니다. Dockerfile 빌드에 대한 자세한 정보는 Code Engine용 Dockerfile 작성을 참조하십시오.

Docker 허브에서 이미지를 가져와 Code Engine 에서 앱 또는 작업에 사용할 경우 무료 요금제(인증되지 않은) 사용자의 경우 Docker 요금 제한에 유의하세요. 가져오기 속도 한계에 도달했음을 표시하는 429 오류를 수신한 경우 가져오기 한계에 도달했을 수 있습니다. 요금 한도를 늘리려면 계정을 Docker Pro 또는 Team 구독으로 업그레이드하면 됩니다.

Cloud Native Buildpacks

Paketo를 사용하여 소스 리포지토리를 검사하고 코드의 기반이 되는 런타임 환경과 소스에서 컨테이너 이미지가 빌드되는 방식을 감지하는 Cloud Native Buildpack입니다. 빌드팩은 소스 저장소의 디렉토리 구조에 대해 가정합니다. 소스 저장소를 올바르게 구성하는 방법에 대한 자세한 정보는 런타임에 제공되는 샘플을 참조하십시오.

런타임 샘플 파일
런타임 버전 샘플
Go 1.24.12 샘플 이동.
Java 21.0.10 Java 샘플.
Node.js 24.14.0 Node.js 샘플.
PHP 8.1.28 PHP 샘플.
Python 3.11.14 Python 샘플.
Ruby 3.1.7 Ruby 샘플.
.NET Core 9.0.311 (.NET Core SDK),
9.0.13 (.NET Core 런타임)
.NET Core 샘플.

Cloud Native Buildpacks 을 사용하여 만든 이미지는 더 이상 중립 타임스탬프인 Jan, 1st 1980 을 이미지 생성 타임스탬프로 사용하지 않습니다. 입력 소스의 타임스탬프가 이미지 생성 타임스탬프로 사용됩니다(예: 빌드에 사용된 커밋의 Git 커밋 타임스탬프).

다양한 IBM Cloud 지역에 업데이트된 버전의 빌드팩이 배포될 때마다 잠시 동안은 지역마다 특정 런타임의 버전이 다를 수 있습니다.

빌드 크기 판별

Code Engine 빌드를 small, medium, large, xlarge, xxlarge 크기로 분류합니다. 빌드 크기는 CPU 코어, 메모리 및 디스크 공간이 빌드에 지정되는 방식을 정의합니다. 빌드가 작을수록 비용이 적게 들지만 CPU 코어를 적게 사용하기 때문에 일반적으로 느립니다. 또한 크기가 작을 경우 빌드의 메모리 및 디스크 요구사항으로 인해 빌드가 실패할 수 있습니다.

빌드 크기 값
크기 Dockerfile 빌드팩
small
  • CPU 0.5
  • 메모리 2GB
  • 디스크 2GB
  • CPU 0.5
  • 메모리 2GB
  • 디스크 2GB
medium
  • CPU 1
  • 메모리 4GB
  • 디스크 4GB
  • CPU 1
  • 메모리 4GB
  • 디스크 4GB
large
  • CPU 2
  • 메모리 8GB
  • 디스크 8GB
  • CPU 2
  • 메모리 8GB
  • 디스크 8GB
xlarge
  • CPU 4
  • 메모리 16GB
  • 디스크 16GB
  • CPU 4
  • 메모리 16GB
  • 디스크 16GB
xxlarge
  • CPU 12
  • 메모리 48GB
  • 디스크 48GB
  • CPU 12
  • 메모리 48GB
  • 디스크 48GB

어떤 크기를 선택해야 할지 확실하지 않은 경우에는 small 또는 medium으로 시작하는 것이 좋습니다. 메모리 또는 디스크 공간이 부족하여 빌드가 실패하거나 충분히 빠르지 않을 경우 더 큰 크기로 전환하십시오.

컨테이너 이미지 레지스트리 선택

Code Engine은 Git 저장소 또는 로컬 디렉토리에서 소스 코드를 가져와서 빌드한 후 이미지를 컨테이너 이미지 레지스트리로 푸시(업로드)합니다.

공용 또는 개인용인 소스 저장소컨테이너 이미지 레지스트리를 사용할 수 있습니다. 빌드 출력에 레지스트리 암호를 사용하여 레지스트리 세부 정보를 지정하거나 Code Engine 에서 소스에서 이미지를 빌드하고 자동 액세스가 가능한 IBM Cloud Container Registry 에 이미지를 저장하도록 선택할 수도 있습니다.

빌드 방법 선택

다음 빌드 옵션에서 Code Engine 는 Git 리포지토리 또는 로컬 디렉토리에서 소스 코드를 가져와서 컨테이너 이미지를 빌드한 다음 컨테이너 이미지를 레지스트리에 푸시(업로드)합니다. 공개 또는 비공개 리포지토리와 레지스트리 중에서 선택할 수 있습니다. 레지스트리가 비공개인 경우 사용자가 제공한 액세스 권한으로 빌드 출력에 대한 레지스트리 암호를 사용하여 레지스트리 세부 정보를 지정합니다. 또는 Code Engine 을 선택하여 자동 액세스를 통해 IBM Cloud Container Registry 에 이미지를 저장할 수 있는 액세스 권한을 만들 수 있습니다.

빌드 구성 만들기

이 시나리오에서는 Code Engine 빌드에 대한 구성을 만듭니다.

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

자세한 정보는 다음 주제를 참조하십시오.

빌드 구성을 생성한 후 실행할 수 있습니다.

독립형 빌드 명령어로 컨테이너 이미지 생성하기

단일 Code Engine CLI 명령을 사용하여 컨테이너 이미지를 빌드하고 재사용 가능한 빌드 구성을 작성하지 않고 컨테이너 이미지를 작성하는 방법에 대해 알아보려면 독립형 빌드 명령을 사용하여 컨테이너 이미지 빌드(CLI)를 참조하십시오.

코드 빌드 및 워크로드 생성

로컬 소스 코드에서 워크로드를 만들면 소스 코드가 아카이브 파일에 압축되어 계정의 IBM Cloud Container Registry 인스턴스 내의 관리 네임스페이스에 업로드됩니다. 이미지도 동일한 네임스페이스에 저장됩니다.

한 번의 작업으로 코드를 작성하고 워크로드를 생성하려면 다음 주제를 참조하세요.

Git 저장소
로컬 파일

빌드를 위한 다음 단계

더 많은 코드 예를 찾고 계십니까? 샘플은 IBM Cloud Code Engine GitHub 리포지토리에서 확인하세요.