이 페이지에서는 Cloud Build에서 커뮤니티 기부 빌더 및 커스텀 빌더를 사용하는 방법을 설명합니다. Cloud Build 개발자 커뮤니티는 태스크를 실행하는 데 사용할 수 있는 오픈소스 빌더를 제공합니다. 수행하려는 작업에 기존 이미지로 제공되지 않는 기능이 필요하면 고유 커스텀 이미지를 빌드하고 이를 빌드 단계에 사용할 수 있습니다. 다른 유형의 빌더에 대해 자세히 알아보려면 클라우드 빌더를 참조하세요.
Cloud Build를 처음 사용하는 경우 빠른 시작 및 빌드 구성 개요를 먼저 읽어보세요.
커뮤니티 기부 빌더 사용
사전 빌드된 이미지는 커뮤니티 기부 빌더로 제공되지 않습니다. 이러한 빌더를 Cloud Build 구성 파일에 사용하려면 먼저 이미지를 빌드하고 프로젝트에서 Container Registry에 푸시해야 합니다.
커뮤니티 기부 빌더를 사용하려면 다음 안내를 따르세요.
빌드하고 빌더를 푸시합니다.
프로젝트 루트 디렉터리로 이동합니다.
cloud-builders-community 저장소를 클론합니다.
git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
사용할 빌더 이미지로 이동합니다. 여기서 builder-name은 빌더가 포함된 디렉터리입니다.
cd cloud-builders-community/builder-name
프로젝트에 빌더를 제출합니다.
gcloud builds submit .
프로젝트 루트 디렉터리로 이동합니다.
cd ../..
루트 디렉터리에서 저장소를 삭제합니다.
rm -rf cloud-builders-community/
Cloud Build 구성 파일에서 빌드 단계에 빌더를 사용합니다.
YAML
steps: - name: 'gcr.io/project-id/builder-name' args: ['arg1', 'arg2', ...] ...
JSON
{ "steps": [ { "name": "gcr.io/project-id/builder-name", "args": [ "arg1", "arg2", ... ] ... } ] }
커뮤니티 기부 빌더 사용에 대한 예시는 Firebase에 배포 및 Packer를 사용하여 VM 이미지 빌드를 참조하세요.
커스텀 빌더 만들기
수행하려는 작업에 공개 이미지, 지원되는 빌더, 커뮤니티 기부 빌더로 제공되지 않는 기능이 필요한 경우 고유 이미지를 빌드하고 이를 빌드 단계에 사용할 수 있습니다.
커스텀 빌더 이미지를 사용해야 하는 경우에 대한 예시는 다음과 같습니다.
- 외부 위치에서 소스 코드 또는 패키지 다운로드
- 외부 도구 체인 사용
- 필요한 라이브러리 캐싱
- 소스 사전 빌드(이미지에 빌드를 잠재적으로 패키징하는 역할만 담당하는 Cloud Build 사용)
다른 빌더와 마찬가지로 커스텀 빌더는 /workspace
아래에 마운트된 소스를 사용하여 실행되며, /workspace
의 작업 디렉터리를 사용하여 실행됩니다. 지정된 빌드 단계로 /workspace
에 남겨진 모든 파일은 다른 빌드 단계에서 사용할 수 있습니다.
커스텀 빌더는 Cloud Build 서비스 계정이 액세스할 수 있는 Container Registry(gcr.io/$PROJECT-NAME/
에서 호스팅됨)에서 push 또는 pull을 수행할 수 있습니다.
다음 단계에서는 Dockerfile
예시를 사용해서 커스텀 빌드를 만들고 사용하는 방법을 보여줍니다.
커스텀 빌더 이미지를 만듭니다.
커스텀 빌더에 대해
Dockerfile
을 만듭니다. 다음 코드는Dockerfile
예시를 보여줍니다.FROM alpine RUN apk add curl CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
프로젝트에서 Container Registry에 커스텀 빌더를 빌드하고 push합니다. 여기서 project-id와 image-name은 적절한 값으로 바꿉니다.
gcloud builds submit --tag gcr.io/project-id/image-name
빌드 단계의
name
필드에 빌더를 지정하여 Cloud Build에서 커스텀 빌더 이미지를 사용합니다.YAML
steps: - name: 'gcr.io/project-id/image-name' id: Determine IP of this build worker
JSON
{ "steps": [ { "name": "gcr.io/project-id/image-name", "id": "Determine IP of this build worker" } ] }
다음 단계
- 빌드 단계에서 bash 스크립트 실행 방법 알아보기
- 빌드 단계 순서 구성 방법 알아보기
- 기본 빌드 구성 파일 작성 방법 알아보기