コンテナをビルドする

Cloud Run は、コンテナ契約を遵守している限り、コンテナ イメージのビルドに対応しているツールでビルドされたコンテナ イメージを受け入れます。コードは PORT 環境変数で定義されたポートで HTTP リクエストをリッスンする必要があります。この PORT 環境変数は、Cloud Run によってコンテナに自動的に挿入されます。

このページでは、コンテナ イメージの作成方法をいくつか説明します。

  • Dockerfile の使用
  • Google Cloud の Buildpack を使用する

始める前に

Dockerfile を使用してビルドする

Docker または Cloud Build を使用してソースからコンテナ イメージをビルド(コンテナ化)する前に、ソースと Dockerfile を用意する必要があります。Hello World のサンプルには、一般的な言語のサンプル アプリケーションと Dockerfile が含まれています。

Dockerfile を使用する場合は、次のいずれかの方法でビルドできます。

  • Cloud Build を使用してビルドする
  • Docker を使用してローカルでビルドする

Cloud Build でビルドする

Cloud Build を使用して Google Cloud にイメージをビルドできます。

  1. ソースと Dockerfile を含むフォルダに移動します。

  2. 次のコマンドを実行します。

    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 でコンテナ イメージをビルドするには:

  1. ソースと Dockerfile を含むフォルダに移動します。

  2. 次のコマンドを実行します。

    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 を指定する必要があります。

  3. コンテナ イメージをサポートされている 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 を使用してビルドするには:

  1. ソースを含むフォルダに移動します。

  2. 次のコマンドを実行します。

    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 です。

  3. ビルドが完了するまで待ちます。

pack コマンドラインを使って Google Cloud の Buildpacks を使用してビルドする

pack コマンドを使用してビルドするには:

  1. まだインストールしていない場合は、Docker をインストールします。

  2. まだインストールしていない場合は、pack をインストールします。

  3. ソースを含むフォルダに移動します。

  4. 次のコマンドを実行してビルドし、サポートされている 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 です。

  5. pack が完了するまで待ちます。

詳しくは、アプリケーションのビルドの手順をご覧ください。

次のステップ