本页面介绍如何为 Cloud Run 服务配置容器端口、入口点命令和参数,以及如何为 Cloud Run 作业配置入口点命令和参数。
当 Cloud Run 启动容器时,它会运行映像的默认入口点命令和默认命令参数。如果要替换映像的默认入口点和命令参数,您可以使用容器配置中的 command
和 args
字段。command
字段指定容器运行的实际命令。args
字段指定传递给该命令的参数。
配置容器端口(服务)
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
对于 Cloud Run 服务,Cloud Run 会将 PORT
环境变量注入容器中。容器应侦听 PORT
环境变量定义的端口,而不是特定的硬编码端口。但是,如果无法做到这一点,您可以配置请求通过哪个端口发送到容器:请注意,端口设置不适用于 Cloud Run 作业。
控制台
如果您是要配置一个新服务来作为部署目标,请点击创建服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本。
如果您要配置新服务,请根据需要填写初始服务设置页面,然后点击容器、网络、安全性以展开服务配置页面。
点击容器标签页。
- 指定要向其发送请求的端口(如果该端口不是默认值“8080”)。这也会设置“PORT”环境变量。
点击创建或部署。
命令行
您可以使用以下命令更新服务的端口配置:
gcloud run services update SERVICE --port PORT
替换
- 将 SERVICE 替换为相应服务的名称。
- 将 PORT 替换为要向其发送请求的端口。请注意,默认端口为
8080
。
您还可以使用以下命令在部署期间配置端口:
gcloud run deploy --image IMAGE_URL --port PORT
将 IMAGE_URL 替换为对容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
。使用 Artifact Registry 时,网址的格式为 REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
。。
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
要查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
更新
containerPort:
特性:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE_URL ports: - containerPort: PORT
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 使用 Artifact Registry 时,网址的格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
。 - 将 PORT 替换为要向其发送请求的端口。
- 将 REVISION 替换为新的修订版本名称或者将其删除(如果存在)。如果您提供新的修订版本名称,则该名称必须满足以下条件:
- 开头为
SERVICE-
- 仅包含小写字母、数字和
-
- 不以
-
结尾 - 不超过 63 个字符
- 开头为
使用以下命令将服务替换为其新配置:
gcloud run services replace service.yaml
配置容器入口点命令和参数
您可以为 Cloud Run 作业和服务配置入口点命令和参数。
对于 Cloud Run 服务
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
指定的容器命令和参数会替换默认映像 ENTRYPOINT
和 CMD
。
您可以在创建新服务或部署新修订版本时使用 Google Cloud 控制台、gcloud 命令行或使用 .yaml 文件来设置入口点命令和参数:
控制台
如果您是要配置一个新服务来作为部署目标,请点击创建服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本。
如果您要配置新服务,请根据需要填写初始服务设置页面,然后点击容器、网络、安全性以展开服务配置页面。
点击容器标签页。
- 指定您希望容器运行的命令(如果该命令不是容器中定义的命令);您还可以选择指定入口点命令的参数。
点击创建或部署。
命令行
如需更新现有服务的启动命令和参数,请执行以下操作:
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 替换为对容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
。使用 Artifact Registry 时,网址的格式为 REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
。
如需清除您设置的任何入口点命令和参数(恢复为容器默认值),请提供空字符串,如下所示:
gcloud run deploy --image IMAGE_URL --command "" --args ""
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
更新
command
和args
特性:spec: containers: - image: IMAGE_URL command: - COMMAND args: - "ARG1" - "ARG-N"
替换
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 使用 Artifact Registry 时,网址的格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
。 - 将 COMMAND 替换为启动容器的命令(如果您未使用默认命令)。
- 将 ARG1 替换为要发送到容器命令的参数。如果您使用多个参数,请在每行中指定每个参数,例如 ARG-N。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
使用以下命令将服务替换为其新配置:
gcloud run services replace service.yaml
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
以下 google_cloud_run_service
资源指定了命令和参数。将 /server
替换为用于启动容器的命令,并将任何必要的参数添加到 args
数组。
对于 Cloud Run 作业
如需配置作业的命令入口点和参数,请执行以下操作:
控制台
如果要配置新作业,请点击作业标签页,然后根据需要填写初始作业设置页面。如果要配置现有作业,请点击作业,然后点击修改。
点击容器、变量和 Secret、连接、安全性以展开作业属性页面。
点击常规标签页。
- 指定您希望容器运行的命令(如果该命令不是容器中定义的命令);您还可以选择指定入口点命令的参数。
点击创建或更新。
命令行
为新作业设置启动命令和参数:
gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
替换
- 将 JOB_NAME 替换为作业的名称。
- 将 COMMAND 替换为启动容器的命令(如果您未使用默认命令)。
- 将 ARG1 替换为要发送到容器命令的参数,或者对多个参数使用英文逗号分隔列表。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/job:latest
。
为现有作业更新命令和参数,请执行以下操作:
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
使用 gcloud run jobs describe --format export
命令下载并查看现有作业配置,该命令会生成清理后的 YAML 格式的结果。然后,修改下述字段,并使用 gcloud run jobs replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run jobs describe JOB_NAME --format export > job.yaml
更新
args:
和command
特性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - args: - 'ARG1' - 'ARG-N' command: - COMMAND image: IMAGE
替换
- 将 COMMAND 替换为启动容器的命令(如果您未使用默认命令)。
- 将 ARG1 替换为要发送到容器命令的参数。(可选)在单独的一行中指定其他参数。
您还可以指定更多配置,例如环境变量或内存限制。
更新现有作业配置:
gcloud run jobs replace job.yaml
如需清除您设置的任何入口点命令和参数(恢复为容器默认值),请提供空字符串,如下所示:
gcloud run jobs update JOB_NAME --command "" --args ""
在参数中使用等号或英文逗号
如果您在参数中使用等号,请使用以下格式提供这些参数:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
如果参数使用英文逗号,请参阅配置环境变量以详细了解如何进行转义。
为 sidecar 部署(服务)配置容器启动顺序
如需在 sidecar 部署中指定容器启动顺序,请使用容器依赖项功能。您可以指定任何具有依赖项的容器,并列出它们所依赖的容器:这些容器首先启动。没有任何依赖项的容器始终首先并发启动。
请注意,如果您使用健康检查探测,则 Cloud Run 会检查依赖容器的健康状况,并确保其在启动下一个容器之前成功通过。如果不使用健康检查,即使容器依赖的容器无法启动,它们也会按指定的顺序启动。
在预览版期间,必须使用 YAML 方法来配置容器启动顺序。若要指定启动顺序,请执行以下操作:
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
要查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
更新
container-dependencies
特性:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
替换
- 将 CONTAINER1 替换为依赖于一个或多个容器的第一个容器的名称。请注意,您可以在 YAML 中设置容器名称:如果未指定名称,Cloud Run 会自动生成一个名称。
- 将 CONTAINER2 替换为必须在 CONTAINER1 之前启动的容器的名称。
- 将 CONTAINER3 替换为依赖于一个或多个容器的第二个容器的名称。
在 YAML 代码段中显示的示例中,CONTAINER2 先启动,CONTAINER1 然后启动,CONTAINER3 最后启动。
使用以下命令将服务替换为其新配置:
gcloud run services replace service.yaml
查看容器设置
如需查看 Cloud Run 服务的当前容器设置,请执行以下操作:
控制台
点击您感兴趣的服务以打开“服务详细信息”页面。
点击修订版本标签页。
在右侧的详细信息面板中,常规标签页下列出了容器设置。
命令行
使用以下命令:
gcloud run services describe SERVICE
在返回的配置中找到容器设置。
如需查看 Cloud Run 作业的当前容器设置,请执行以下操作:
控制台
点击相关作业以打开作业详情页面。
点击配置标签页。
在配置详细信息中找到容器设置。
命令行
使用以下命令:
gcloud run jobs describe JOB_NAME
在返回的配置中找到容器设置。