コンテナをビルドする

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 にイメージをビルドできます。

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

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

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

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

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

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

  3. Google Cloud CLI を使用して Container Registry へのリクエストを認証するように Docker を構成していない場合は、次のコマンドを実行して構成を行います。

    gcloud auth configure-docker

    Docker でイメージの pull と push を行う前に、この設定を行う必要があります。この操作は初回のみ必要です。

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

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

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

    gcloud builds submit --pack image=IMAGE_URL

    IMAGE_URL をコンテナ イメージ URL(たとえば、gcr.io/myproject/myservice)で置き換えます。

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

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

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

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

  2. Google Cloud CLI を使用して Container Registry へのリクエストを認証するように Docker を構成していない場合は、次のコマンドを実行して構成を行います。

    gcloud auth configure-docker

    Docker でイメージの pull と push を行う前に、この設定を行う必要があります。この操作は初回のみ必要です。

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

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

  5. 次のコマンドを実行してビルドし、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 です。

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

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

次のステップ