캐시 이미지로 빌드 속도 향상

빌드팩 캐시 이미지를 활용해서 이전 빌드의 결과를 재사용할 수 있습니다. 이렇게 하면 Cloud Build와 같은 임시 환경에서 이미지를 빌드할 때를 포함하여 Google Cloud의 빌드팩을 사용해서 이미지를 빌드할 때 전체 기간을 줄일 수 있습니다.

이 가이드의 다음 단계에서는 Cloud Build를 사용한 원격 빌드에 중점을 둡니다. 로컬 빌드의 경우 캐시 이미지 안내와 pack 명령어 참조 페이지를 모두 확인하세요.

Cloud Build에 캐시 이미지 사용

Cloud Build에서 빌드팩 캐시 이미지를 사용 설정하려면 cloudbuild.yaml과 같은 빌드 구성 파일을 만들어야 합니다. 빌드 구성 파일은 pack CLI가 빌드 이미지를 지정된 원격 저장소에 게시하도록 지시합니다. 그런 후 이 빌드 이미지는 후속 빌드를 위한 '캐시 이미지'로 사용됩니다.

새 빌드 구성 파일에 실행하는 첫 번째 빌드는 pack 명령어를 사용해서 초기 빌드 이미지 캐시를 만들고 이를 저장소에 푸시합니다. 빌드 성능 개선은 초기 캐시 이미지가 빌드에 제공된 이후에만 확인됩니다.

빌드 구성 파일 만들기

Cloud Build 구성 파일을 정의하려면 pack CLI를 사용하여 이미지를 만드는 빌드 단계를 사용해서 YAML 파일을 작성해야 합니다.

다음 예시 cloudbuild.yaml에서 빌드는 빌드팩을 사용해서 애플리케이션 또는 함수에 대해 이미지를 만들고, 초기 빌드 캐시 이미지를 만들고, 이를 저장소에 푸시합니다.

options:
  logging: CLOUD_LOGGING_ONLY
  pool: {}
projectId: PROJECT_ID
steps:
- name: gcr.io/k8s-skaffold/pack
  entrypoint: pack
  args:
  - build
  - LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME
  - --builder
  - gcr.io/buildpacks/builder:latest
  - --cache-image
  - LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/CACHE_IMAGE_NAME:latest
  - --publish 

다음과 같이 바꿉니다.

  • LOCATION을 컨테이너 저장소의 리전 이름으로 바꿉니다. 예를 들면 us-west2입니다.
  • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.
  • REPO_NAME을 Docker 저장소의 이름으로 바꿉니다.
  • IMAGE_NAME을 애플리케이션 또는 함수 컨테이너 이미지의 이름으로 바꿉니다.
  • CACHE_IMAGE_NAME을 빌드 캐시 이미지의 이름으로 바꿉니다.

pack build 명령어 참조에서 빌드 구성 파일에 정의할 수 있는 다른 지원되는 인수도 참조하세요.

캐시 이미지로 원격으로 빌드

빌드를 실행하려면 --config 명령어 플래그를 포함하고 구성 파일을 지정합니다. 예를 들어 cloudbuild.yaml이라는 파일을 사용하려면 다음을 실행하면 됩니다.

gcloud builds submit --config cloudbuild.yaml --pack image=example-docker.pkg.dev/my-project-id/repo/example-image

원격 빌드에 대한 자세한 내용은 애플리케이션 빌드 또는 함수 빌드를 참조하세요.