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

Buildpack のキャッシュ イメージを使用すると、以前のビルドの結果を再利用できます。これにより、Cloud Build などの一時的な環境でイメージをビルドする場合を含め、Google Cloud の Buildpack を使用してイメージをビルドする際の全体的な時間が短縮されます。

このガイドの以降の手順は、Cloud Build を使用したリモートビルドに焦点を当てています。ローカルビルドについては、キャッシュ イメージの手順と pack コマンドのリファレンス ページの両方をご覧ください。

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

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

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

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

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

次の cloudbuild.yaml の例では、Buildpack を使用してアプリケーションまたは関数用のイメージを作成し、初期ビルドのキャッシュ イメージを作成してリポジトリに 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

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