インスタンスのコンテナを構成する

このページでは、Cloud Run インスタンスのエントリポイント コマンドと引数を構成する方法について説明します。

Cloud Run がコンテナを起動すると、イメージのデフォルトのエントリポイント コマンドとデフォルトのコマンド引数が実行されます。イメージのデフォルトのエントリポイントとコマンド引数をオーバーライドする場合は、コンテナ構成の command フィールドと args フィールドを使用できます。command フィールドは、コンテナによって実行される実際のコマンドを指定します。args フィールドは、そのコマンドに渡される引数を指定します。

インスタンスごとに、コンテナごとに最大 1,000 個の引数を指定できます。

必要なロール

Cloud Run インスタンスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

Cloud Run に関連付けられている IAM ロールと権限のリストについては、 Cloud Run IAM ロールCloud Run IAM 権限をご覧ください。 Cloud Run インスタンスが Google Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、 サービス ID の構成ガイドをご覧ください。 ロールの付与の詳細については、 デプロイ権限アクセスの管理をご覧ください。

エントリポイントと引数を構成する

デフォルトのイメージ ENTRYPOINTCMD の設定をオーバーライドするには、Google Cloud CLI または YAML を使用して Cloud Run インスタンスのエントリポイント コマンドと引数を設定します。

gcloud

既存のインスタンスの start コマンドと引数を更新するには:

gcloud beta run instances update INSTANCE --command COMMAND --args ARG1,ARG-N

次のように置き換えます。

  • INSTANCE: インスタンスの名前。
  • COMMAND:デフォルトのコマンドを使用していない場合に、コンテナを起動するコマンド。
  • ARG1: コンテナ コマンドに送信する引数。複数の引数を指定する場合は、カンマ区切りのリストを使用します。

新しいインスタンスまたは既存のインスタンスの デプロイ中にエントリポイントと引数を指定するには:

gcloud beta run instances deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

IMAGE_URL は、コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)に置き換えます。

エントリポイント コマンドと引数のコンテナのデフォルトを復元する場合は、次のように空の文字列を指定します。

gcloud beta run instances --image IMAGE_URL --command "" --args ""

YAML

  1. 新しいインスタンスを作成する場合は、この手順をスキップします。 既存のインスタンスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. 次の例には、YAML 構成が含まれています。

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - name: CONTAINER_NAME
        image: IMAGE_URL
        command:
        - COMMAND
        args:
        - ARG1
        - ARG-N

    次のように置き換えます。

    • INSTANCE: Cloud Run インスタンスの名前。
    • CONTAINER_NAME: コンテナの名前。
    • IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)。
    • COMMAND: デフォルトのコマンドを使用していない場合に、コンテナを起動するコマンド。
    • ARG1: コンテナ コマンドに送信する引数。複数の引数を使用する場合は、1 行に 1 つずつ指定します。たとえば、上述の ARG-N のようにします。
  3. 次のコマンドを使用して、インスタンスを作成または更新します。

    gcloud beta run instances replace instance.yaml

サイドカー デプロイでコンテナの起動順序を構成する

サイドカー デプロイでコンテナの起動順序を指定するには、 コンテナの依存関係の特性を利用します。依存関係のあるコンテナを指定し、それらが依存するコンテナをリストします。これらのコンテナが最初に開始されます。依存関係のないコンテナは常に最初かつ同時に起動されます。

この機能を正常に使用するには、起動ヘルスチェック プローブを使用する必要があります。起動プローブにより、Cloud Run は依存コンテナの健全性を検査し、次のコンテナを起動する前に問題ないことを確認します。ヘルスチェックを使用しない場合、依存するコンテナが起動に失敗した場合でも、コンテナは指定された順序で起動します。

インスタンスのデフォルトの起動ヘルスチェック プローブはありません。

Google Cloud CLI または YAML を使用して起動順序を指定します。

gcloud

Google Cloud CLI を使用して起動順序を指定する前に、 起動ヘルスチェックを構成します

  1. コンソール Google Cloud で Cloud Shell をアクティブにします。

    Cloud Shell をアクティブにする

    コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。

  2. 指定した起動順序で複数のコンテナをインスタンスにデプロイするには、次のコマンドを実行します。

gcloud beta run instances deploy INSTANCE \
         --container CONTAINER_1_NAME --image='INSTANCE_IMAGE'
     --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
     --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME

次のように置き換えます。

  • INSTANCE: インスタンスの名前。
  • IMAGE_URLは、コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)に置き換えます。
  • SIDECAR_IMAGE: サイドカー コンテナ イメージへの参照。

    deploy コマンドで各コンテナを構成する場合は、container パラメータの後に各コンテナの構成を指定します。

YAML

  1. 新しいインスタンスを作成する場合は、この手順をスキップします。 既存のインスタンスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. 次の例には、YAML 構成が含まれています。

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'

    次のように置き換えます。

    • INSTANCE: Cloud Run インスタンスの名前。
    • CONTAINER1:1 つ以上のコンテナに依存する 1 番目のコンテナの名前。コンテナ名は YAML で設定できます。名前を指定しなかった場合、Cloud Run は自動的に名前を生成します。
    • CONTAINER2: CONTAINER1 の前に起動する必要があるコンテナの名前。
    • CONTAINER3: 1 つ以上のコンテナに依存する 2 番目のコンテナの名前。

    YAML スニペットの例では、CONTAINER2 が最初に起動し、次に CONTAINER1 が起動して、最後に CONTAINER3 が起動しています。

  3. 次のコマンドを使用して、インスタンスを作成または更新します。

    gcloud beta run instances replace instance.yaml