キャッシュ イメージを使用してビルドを高速化する

Buildpacks のキャッシュ イメージを活用すると、以前のビルドの結果を再利用できます。これにより、Cloud Build などのエフェメラル環境でイメージをビルドする際にも、Google Cloud の Buildpacks でイメージをビルドする際に全体の時間を短縮できます。

このガイドの次の手順では、Cloud Build を使用したリモートビルドを中心に説明します。ローカルビルドの場合は、キャッシュ イメージの手順と pack コマンド リファレンスのページの両方をご覧ください。

Cloud Build でのキャッシュ イメージの使用

Cloud Build で Buildpacks キャッシュ イメージを有効にするには、cloudbuild.yaml などのビルド構成ファイルを作成する必要があります。ビルド構成ファイルは、指定されたリモート リポジトリにビルドイメージを公開するように pack CLI に指示します。このビルドイメージは、以降のビルドの「キャッシュ イメージ」として使用されます。

新しいビルド構成ファイルを使用して実行する最初のビルドでは、pack コマンドを使用して初期ビルド イメージ キャッシュを作成し、リポジトリに push します。ビルドのパフォーマンスの向上は、ビルドで最初のキャッシュ イメージが使用可能になった後で初めて確認されます。

ビルド構成ファイルの作成

Cloud Build 構成ファイルを定義するには、pack CLI を使用するビルドステップで YAML ファイルを作成してイメージを作成する必要があります。

次の cloudbuild.yaml の例では、Buildpacks を使用してアプリケーションまたは関数用のイメージを作成し、初期ビルド キャッシュ イメージを作成してリポジトリに push します。

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

リモートビルドの詳細については、アプリケーションを構築するまたは関数を作成するをご覧ください。