コンテナの構成

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

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

コンテナポートの構成

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

コンテナは、特定のハードコードされたポートではなく、PORT 環境変数で定義されたポートをリッスンする必要があります。ただし、これができない場合は、どのポートのリクエストをコンテナに送信するかを構成できます。

Console

  1. Cloud Run に移動します

  2. デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. [詳細設定] で [コンテナ] をクリックします。

    画像

  4. リクエストを送信するポートを指定します(デフォルト値「8080」でない場合)。これにより、「PORT」環境変数も設定されます。

  5. [作成] または [デプロイ] をクリックします。

コマンドライン

次のコマンドを使用して、サービスのポート構成を更新できます。

gcloud run services update SERVICE --port PORT

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

  • SERVICE は、サービスの名前に置き換えます。
  • PORT は、リクエストを送信するポートに置き換えます。デフォルトのポートは 8080 です。

デプロイの間に、次のコマンドを使用してポートを構成することもできます。

gcloud run deploy --image IMAGE_URL --port PORT

IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。

YAML

既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順に沿ってフィールドを変更し、gcloud beta run services replace コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. containerPort: 属性を更新します。

    spec:
      containers:
      - image: IMAGE_URL
        ports:
        - containerPort: PORT
    

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

    • IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。
    • PORT は、リクエストを送信するポートに置き換えます。
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud beta run services replace service.yaml

コンテナのエントリポイント コマンドと引数の構成

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

新しいサービスを作成するとき、または新しいリビジョンをデプロイするときに、Cloud Console、gcloud コマンドライン、.yaml ファイルを使用してエントリポイント コマンドと引数を設定できます。

Console

  1. Cloud Run に移動します

  2. デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. [詳細設定] で [コンテナ] をクリックします。

    画像

  4. コンテナで実行するコマンドを指定します(コンテナでコマンドが定義されていない場合)。オプションで、エントリポイント コマンドへの引数を指定します。

  5. [作成] または [デプロイ] をクリックします。

コマンドライン

次のコマンドを使用して、特定のサービスの起動コマンドと引数を更新できます。

gcloud run services update SERVICE --command COMMAND --args ARG1,ARG-N

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

  • COMMAND は、デフォルトのコマンドを使用していない場合に、コンテナを起動するコマンドに置き換えます。
  • ARG1 は、コンテナ コマンドに送信する引数に置き換えます。引数が複数の場合はカンマ区切りのリストを使用します。

デプロイの間に、次のコマンドを使用してエントリポイントと引数を指定することもできます。

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

IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。

引数で等号を使用する場合は、次の形式を使用して指定します。

gcloud run deploy  \
  --args "--repo-allowlist=github.com/example/example_demo" \
  --args "--gh-webhook-secret=XX" \

引数にカンマが含まれる場合、カンマをエスケープする方法については、環境変数の構成をご覧ください。

YAML

既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順に沿ってフィールドを変更し、gcloud beta run services replace コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. command 属性と args 属性を更新します。

    spec:
      containers:
      - image: IMAGE_URL
        command:
        - COMMAND
        args:
          - "ARG1"
          - "ARG-N"
    

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

    • IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。
    • COMMAND は、デフォルトのコマンドを使用していない場合に、コンテナを起動するコマンドに置き換えます。
    • ARG1 は、コンテナ コマンドに送信する引数に置き換えます。引数が複数の場合はカンマ区切りのリストを使用します。
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud beta run services replace service.yaml