コンテナポート、コンテナ エントリ ポイントのコマンド、その引数の構成方法について学習します。
Cloud Run for Anthos がコンテナを起動すると、イメージのデフォルトのエントリポイント コマンドとデフォルトのコマンド引数が実行されます。イメージのデフォルトのエントリポイントとコマンド引数をオーバーライドする場合は、コンテナ構成の command
フィールドと args
フィールドを使用できます。command
フィールドは、コンテナによって実行される実際のコマンドを指定します。args
フィールドは、そのコマンドに渡される引数を指定します。
コンテナポートの構成
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
コンテナは、特定のハードコードされたポートではなく、PORT
環境変数で定義されたポートをリッスンする必要があります。ただし、これができない場合は、どのポートのリクエストをコンテナに送信するかを構成できます。
Console
Google Cloud コンソールで Cloud Run for Anthos に移動します。
デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、そのサービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
[詳細設定] で [コンテナ] をクリックします。
リクエストを送信するポートを指定します(デフォルト値
8080
でない場合)。これにより、PORT
環境変数も設定されます。[次へ] をクリックして、次のセクションに進みます。
[このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。
[作成] をクリックしてイメージを Cloud Run for Anthos にデプロイし、デプロイの完了を待ちます。
コマンドライン
既存のサービスの場合は、次のパラメータを指定して
gcloud run services update
コマンドを実行し、ポートの設定を更新します。gcloud run services update SERVICE --port PORT
以下のように置き換えます。
- SERVICE は、サービスの名前に置き換えます。
- PORT は、リクエストを送信するポートに置き換えます。デフォルトのポートは
8080
です。
新しいサービスの場合は、
--port
パラメータを指定してgcloud run deploy
コマンドを実行し、ポートを設定します。gcloud run deploy SERVICE --image=IMAGE_URL --port PORT
以下のように置き換えます。
- SERVICE は、サービスの名前に置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
gcr.io/myproject/my-image:latest
など)に置き換えます。 - PORT はリクエストを送信するポートに置き換えます。デフォルト ポートは
8080
です。
YAML
--format=export
フラグを使用して、gcloud run services describe
コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud beta run services replace
コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。
ローカル ワークスペースの
service.yaml
という名前のファイルにサービスの構成をダウンロードします。gcloud run services describe SERVICE --format export > service.yaml
SERVICE は、Cloud Run for Anthos サービスの名前に置き換えます。
ローカル ファイルで
containerPort:
属性を更新します。apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL ports: - containerPort: PORT
次のように置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
gcr.io/myproject/my-image:latest
など)に置き換えます。 - PORT はリクエストを送信するポートに置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud beta run services replace service.yaml
コンテナのエントリポイント コマンドと引数の構成
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
Cloud Run for Anthos は、コンテナの起動時にイメージのデフォルト エントリポイント コマンドを実行します。コンテナ イメージに定義されている既存のエントリポイント コマンドと引数を指定またはオーバーライドするには、Cloud Run for Anthos コンテナ構成で command
と args
の設定を構成します。
エントリポイント コマンド、引数、またはその両方を構成できます。Cloud Run for Anthos で指定するコマンドは、コンテナ イメージに定義されているエントリポイント コマンドをオーバーライドします。引数だけを指定した場合、これらの引数はコンテナ イメージで定義されたエントリ ポイント コマンドに渡され、実行されます。
Cloud Run for Anthos では、新しいサービスのデプロイ、既存のサービスの更新、リビジョンのデプロイを行うときに、Google Cloud コンソール、Google Cloud CLI、または YAML ファイルを使用して、エントリポイント コマンドと引数を構成できます。
Console
Google Cloud コンソールで Cloud Run for Anthos に移動します。
デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、そのサービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
[詳細設定] で [コンテナ] をクリックします。
起動時にコンテナを実行するエントリポイント コマンドと引数を指定します。
[次へ] をクリックして、次のセクションに進みます。
[このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。
[作成] をクリックしてイメージを Cloud Run for Anthos にデプロイし、デプロイの完了を待ちます。
コマンドライン
コマンド パラメータ オプション
-
カンマ(
,
)を含む引数を指定する場合は、各ARG
を別の区切り文字でエスケープする必要があります。たとえば、@
を使用する場合は、次のようにします。--args "^@^arg,with,commas@anotherarg@ARG3..."
-
複数の Key-Value ペアを指定するには、読みやすくするために複数のパラメータを指定します。例:
[...] --args "
ARG
1" \ --args "ARG
2" \ --args "ARG
3" -
引数で等号(
=
)を使用する場合は、各引数を次の形式で指定する必要があります。gcloud run services ... \ --args "--repo-allowlist=github.com/example/example_demo" \ --args "--gh-webhook-secret=XX"
既存のサービスの場合、次のパラメータを指定して
gcloud run services update
コマンドを実行し、エントリポイント コマンドを更新します。gcloud run services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N
以下のように置き換えます。
- SERVICE は、サービスの名前に置き換えます。
- 省略可: COMMAND は、起動時にコンテナが実行するコマンドに置き換えます。
- 省略可: ARG1 は、起動時に実行されるコマンドの 1 つ以上の引数を指定します。複数の引数を指定する場合は、カンマ区切りのリストを使用します。引数の形式
新しいサービスの場合、エントリポイント コマンドを設定するには、
--command
パラメータを指定してgcloud run deploy
コマンドを実行します。gcloud run deploy SERVICE --image=IMAGE_URL --command COMMAND --args ARG1,ARG2,ARG-N
以下のように置き換えます。
- SERVICE は、サービスの名前に置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
gcr.io/myproject/my-image:latest
など)に置き換えます。 - 省略可: COMMAND は、起動時にコンテナが実行するコマンドに置き換えます。
- 省略可: ARG1 は、起動時に実行されるコマンドの 1 つ以上の引数を指定します。複数の引数を指定する場合は、カンマ区切りのリストを使用します。引数の形式
YAML
--format=export
フラグを使用して、gcloud run services describe
コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud beta run services replace
コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。
ローカル ワークスペースの
service.yaml
という名前のファイルにサービスの構成をダウンロードします。gcloud run services describe SERVICE --format export > service.yaml
SERVICE は、Cloud Run for Anthos サービスの名前に置き換えます。
ローカル ファイルで
command
属性とargs
属性を更新します。apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL command: - COMMAND args: - "ARG1" - "ARG-N"
以下のように置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
gcr.io/myproject/my-image:latest
など)に置き換えます。 - 省略可: COMMAND は、起動時にコンテナが実行するコマンドに置き換えます。
- 省略可: ARG1 は、起動時に実行されるコマンドの 1 つ以上の引数を指定します。複数の引数を指定する場合は、カンマ区切りのリストを使用します。
- IMAGE_URL は、コンテナ イメージへの参照(
次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud beta run services replace service.yaml