Cloud Run は、コンテナ契約を遵守している限り、コンテナ イメージのビルドに対応しているツールでビルドされたコンテナ イメージを受け入れます。コードは PORT
環境変数で定義されたポートで HTTP リクエストをリッスンする必要があります。この PORT
環境変数は、Cloud Run によってコンテナに自動的に挿入されます。
このページでは、コンテナ イメージの作成方法をいくつか説明します。
- Dockerfile の使用
- Google Cloud の Buildpack を使用する
始める前に
このページの一部のコマンドを実行するには、Google Cloud CLI が必要です。
サポートされている Container Registry にリポジトリを作成します。Artifact Registry リポジトリを作成するには、次のコマンドを実行します。
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
gcloud CLI 認証情報ヘルパーを使用して Artifact Registry にアクセスするように Docker を構成できます。
gcloud auth configure-docker LOCATION-docker.pkg.dev
Dockerfile を使用してビルドする
Docker または Cloud Build を使用してソースからコンテナ イメージをビルド(コンテナ化)する前に、ソースと Dockerfile を用意する必要があります。Hello World のサンプルには、一般的な言語のサンプル アプリケーションと Dockerfile が含まれています。
Dockerfile を使用する場合は、次のいずれかの方法でビルドできます。
- Cloud Build を使用してビルドする
- Docker を使用してローカルでビルドする
Cloud Build でビルドする
Cloud Build を使用して Google Cloud にイメージをビルドできます。
ソースと Dockerfile を含むフォルダに移動します。
次のコマンドを実行します。
gcloud builds submit --tag IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
です。
ビルドのパフォーマンスを向上させるヒントについては、ビルドの高速化をご覧ください。
ローカルにビルドして Docker で push する
Docker をローカルにインストールしている場合は、Cloud Build や Google Cloud の Buildpacks の代わりに docker build
を使用できます。
Docker でコンテナ イメージをビルドするには:
ソースと
Dockerfile
を含むフォルダに移動します。次のコマンドを実行します。
docker build . --tag IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
です。Apple シリコン搭載の Mac を使用している場合は、コマンドラインで
--platform linux/amd64
を指定する必要があります。コンテナ イメージをサポートされている Container Registry に push します。
docker push IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
です。
このプロセスからローカル ファイルを除外するには、.dockerignore
構成ファイルの手順に沿って操作します。
Google Cloud の Buildpack を使用してビルドする
Google Cloud の buildpacks は、Cloud Run を含む Google Cloud コンテナ プラットフォームで実行するように設計されたコンテナ イメージにソースコードをビルドする、CNCF 互換の buildpacks のセットです。
サポートされている言語の一覧については、Google Cloud の buildpacks ドキュメントをご覧ください。
Cloud Build を使って Google Cloud の buildpacks を使用してビルドする
Google Cloud の buildpacks を使用してビルドするには:
ソースを含むフォルダに移動します。
次のコマンドを実行します。
gcloud builds submit --pack image=IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
です。ビルドが完了するまで待ちます。
pack
コマンドラインを使って Google Cloud の buildpacks を使用してビルドする
pack コマンドを使用してビルドするには:
まだインストールしていない場合は、Docker をインストールします。
まだインストールしていない場合は、
pack
をインストールします。ソースを含むフォルダに移動します。
次のコマンドを実行してビルドし、サポートされている Container Registry に push します。
pack build --publish IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
です。pack
が完了するまで待ちます。
詳しくは、アプリケーションのビルドの手順をご覧ください。
次のステップ
- コンテナがビルドされた後、Cloud Run にデプロイする前にローカルでテストする。Cloud Run サービスをローカルでテストするをご覧ください。
- コンテナを Cloud Run にデプロイする際に適用される契約の詳細を確認する。コンテナ契約をご覧ください。
- ビルドしたコンテナを Cloud Run にデプロイする。サービスをデプロイするをご覧ください。
- Cloud Build トリガーを使用して Cloud Run サービスのビルドとデプロイを自動化する。継続的デプロイの設定をご覧ください。
- Java アプリケーションに最適なコンテナビルドを実行する。Jib を使用して Java コンテナをビルドするをご覧ください。