ビルダーとは、バージョニングされたイメージで、実行可能なコンテナの作成に必要なすべてのコンポーネントを含みます。各ビルダーでは、Ubuntu 22 などの特定の OS ディストリビューションがベースイメージとして使用され、複数のプログラミング言語のバージョンがサポートされています。
次が必要である場合は、ビルダー バージョンをカスタマイズする必要があります。
- 特定のビルダー バージョンでのみ使用できる OS 固有の依存関係。
- 特定のビルダー バージョンでのみ使用できるプログラミング言語の特定のバージョン。
ローカルビルド
ローカルビルドの場合、Pack CLI と Docker がインストールされている必要があります。
始める前に
- Docker Community Edition(CE)をワークステーションにインストールします。
pack
は Docker を OCI イメージ ビルダーとして使用します。 - Pack CLI をインストールします。
- GitHub からサンプル アプリケーションを取得するために Git ソース管理ツールをインストールします。
pack
でビルダー バージョンを指定する
pack コマンドに --builder
フラグを追加すると、使用するビルダーのバージョンを指定できます。
pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL
次のように置き換えます。
BUILDER_IMAGE_URL
は、ビルダーの URL に置き換えます。例:gcr.io/buildpacks/builder:google-22
SERVICE_IMAGE_NAME
は、アプリケーション イメージに選択した名前に置き換えます。
pack
コマンドについて詳しくは、CLI のドキュメントをご覧ください。
project.toml
でビルダー バージョンを指定する
Buildpacks のプロジェクト記述子(project.toml
)を使用して、pack
でビルドするときのビルダーを設定できます。
- アプリケーションのルート ディレクトリに
project.toml
というファイルを作成し、次の構成を記述します。[build] builder = "BUILDER_IMAGE_URL"
-
「pack」コマンドを実行して、アプリケーションをビルドします。
pack build SERVICE_IMAGE_NAME
次のように置き換えます。
BUILDER_IMAGE_URL
は、ビルダーの URLに置き換えます。例:gcr.io/buildpacks/builder:google-22
SERVICE_IMAGE_NAME
は、アプリケーション イメージに選択した名前に置き換えます。
リモートビルド
プロジェクトを送信するときに --pack
フラグを追加すると、Cloud Build で特定のビルダーを使用できます。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Google Cloud プロジェクトがコンテナ イメージ リポジトリにアクセスできることを確認します。
Artifact Registry の Docker リポジトリへのアクセスを構成するには:
- Google Cloud プロジェクトの同じロケーションに Docker リポジトリを新規作成します。
次のように置き換えます。gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
REPO_NAME
は、Docker リポジトリに選択した名前に置き換えます。REGION
は、Google Cloud プロジェクトのロケーションに、またはそれに最も近いロケーションに置き換えます。DESCRIPTION
は選択した説明に置き換えます。
たとえば、「Docker repository」という説明を使用して
us-west2
にdocker
リポジトリを作成するには、次のコマンドを実行します。gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
- リポジトリが作成されたことを確認します。
gcloud artifacts repositories list
Docker リポジトリに選択した名前がリストに表示されます。
- Google Cloud プロジェクトの同じロケーションに Docker リポジトリを新規作成します。
特定のビルダーを使用してアプリケーションをビルドする
gcloud
を使用して、アプリケーションのソースコードを Cloud Build に送信します。gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME
次のように置き換えます。
BUILDER_IMAGE_URL
は、ビルダーの URL に置き換えます。 例:gcr.io/buildpacks/builder:google-22
LOCATION
は、コンテナ リポジトリのリージョン名に置き換えます。例:us-west2-docker.pkg.dev
PROJECT_ID
は、Google Cloud プロジェクトの ID に置き換えます。REPO_NAME
は Docker リポジトリの名前に置き換えます。SERVICE_IMAGE_NAME
は、作成したコンテナ イメージの名前に置き換えます。
submit
コマンドについて詳しくは、Cloud Build のドキュメントをご覧ください。-
サンプル アプリケーションが
REPO_NAME
に正常に公開されたことを確認します。gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME
次のように置き換えます。
LOCATION
は、コンテナ リポジトリのリージョン名に置き換えます。例:us-west2-docker.pkg.dev
PROJECT_ID
は、Google Cloud プロジェクトの ID に置き換えます。REPO_NAME
は Docker リポジトリの名前に置き換えます。
Cloud Run を使用してソースからデプロイする
Buildpacks のプロジェクト記述子ファイル(project.toml
など)を使用して、Cloud Run でソースからデプロイするときのビルダーを設定できます。
- アプリケーション ディレクトリのルートで
project.toml
ファイルを初期化し、次の構成を貼り付けます。[build] builder = "BUILDER_IMAGE_URL"
-
ソースからアプリケーションをデプロイします。
gcloud run deploy --source . SERVICE_IMAGE_NAME
次のように置き換えます。
BUILDER_IMAGE_URL
は、ビルダーの URL に置き換えます。例:gcr.io/buildpacks/builder:google-22
SERVICE_IMAGE_NAME
は、作成したコンテナ イメージの名前に置き換えます。