Cloud Run は、コンテナ契約を遵守している限り、コンテナ イメージのビルドに対応しているツールでビルドされたコンテナ イメージを受け入れます。コードは PORT
環境変数で定義されたポートで HTTP リクエストをリッスンする必要があります。この PORT
環境変数は、Cloud Run によってコンテナに自動的に挿入されます。
このページでは、コンテナ イメージの作成方法をいくつか説明します。
- Dockerfile を使用する
- Buildpacks を使用する
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 はREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
という形式です。
ビルドのパフォーマンスを向上させるヒントについては、ビルドの高速化をご覧ください。
ローカルにビルドして Docker で push する
Docker をローカルにインストールしている場合は、Cloud Build や 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 はREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
という形式です。Google Cloud CLI を使用して Container Registry へのリクエストを認証するように Docker を構成していない場合は、次のコマンドを実行して構成を行います。
gcloud auth configure-docker
Docker でイメージの pull と push を行う前に、この設定を行う必要があります。この操作は初回のみ必要です。
コンテナ イメージをサポートされている Container Registry に push します。
docker push IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL はREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
という形式です。
このプロセスからローカル ファイルを除外するには、.dockerignore
構成ファイルの手順に沿って操作します。
Google Cloud の buildpacks を使用してビルドする
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 をコンテナ イメージ URL(たとえば、
gcr.io/myproject/myservice
)で置き換えます。ビルドが完了するまで待ちます。
pack
コマンドラインを使って Google Cloud の buildpacks を使用してビルドする
pack コマンドを使用してビルドするには:
まだインストールしていない場合は、Docker をインストールします。
Google Cloud CLI を使用して Container Registry へのリクエストを認証するように Docker を構成していない場合は、次のコマンドを実行して構成を行います。
gcloud auth configure-docker
Docker でイメージの pull と push を行う前に、この設定を行う必要があります。この操作は初回のみ必要です。
まだインストールしていない場合は、
pack
をインストールします。ソースを含むフォルダに移動します。
次のコマンドを実行してビルドし、Container Registry に push します。
pack build --publish IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL はREGION-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 コンテナをビルドするをご覧ください。