設定工作容器

本頁面說明如何為 Cloud Run 作業設定進入點指令和引數。

Cloud Run 啟動容器時,會執行映像檔的預設進入點指令和預設指令引數。如要覆寫映像檔的預設進入點和指令引數,可以使用容器設定中的 commandargs 欄位。command 欄位會指定容器執行的實際指令。args 欄位會指定傳遞至該指令的引數。

請注意,每個作業的容器最多可有 1000 個引數。

本頁說明如何為 Cloud Run 作業中的容器設定指令、引數和啟動順序。您可以透過Google Cloud 控制台、Google Cloud CLI 或 YAML 設定這些設定。

必要的角色

如要取得設定 Cloud Run 作業所需的權限,請要求管理員授予下列 IAM 角色:

如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱 Cloud Run IAM 角色Cloud Run IAM 權限。如果 Cloud Run 作業與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱部署權限管理存取權

設定進入點和引數

如要設定工作的指令進入點和引數,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run 作業頁面:

    前往 Cloud Run

  2. 從選單中選取「工作」,然後按一下「部署容器」,填寫初始工作設定頁面。如要設定現有工作,請選取該工作,然後按一下「編輯」

  3. 按一下「容器、磁碟區、連線與安全性」,展開工作屬性頁面。

  4. 按一下「一般」分頁標籤。

    圖片

    • 指定容器要執行的指令 (如果不是容器中定義的指令),並視需要指定進入點指令的引數。
  5. 按一下「建立」或「更新」

gcloud

  1. 為新工作設定啟動指令和引數

    gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

    取代

    • JOB_NAME 改為您的工作名稱。
    • COMMAND,並搭配容器要啟動的指令 (如果未使用預設指令)。
    • ARG1,並將引數傳送至容器指令。如要使用多個引數,請以半形逗號分隔,例如 --args="arg1", "arg2", "arg3"。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。
    • IMAGE_URL,並參照容器映像檔,例如 us-docker.pkg.dev/cloudrun/container/job:latest

如要更新現有工作的指令和引數

gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N 

YAML

  1. 如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 更新 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,並將引數傳送至容器指令。您也可以視需要指定其他引數,但每個引數必須各占一行。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。

    您也可以指定更多設定,例如環境變數或記憶體限制。

  3. 更新現有工作設定:

    gcloud run jobs replace job.yaml

如要清除您設定的所有進入點指令和引數 (還原為容器預設值),請提供空字串,如下所示:

gcloud run jobs update JOB_NAME --command "" --args "" 

Terraform

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

在 Terraform 設定中,將下列內容新增至 google_cloud_run_v2_job 資源:
resource "google_cloud_run_v2_job" "default" {
 name     = "JOB_NAME"
 location = "REGION"

 template {
   template {
     containers {
       image = "us-docker.pkg.dev/cloudrun/container/job"
       command = ["COMMAND"]
       args = ["ARG1", "ARG-N"]
     }
   }
 }
}

取代:

  • JOB_NAME 改為您的 Cloud Run 工作名稱。
  • REGION 替換成 Google Cloud 地區。例如:europe-west1
  • COMMAND,並搭配容器要啟動的指令 (如果您未使用預設指令)。
  • ARG1,並將引數傳送至容器指令。視需要指定其他引數。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。

在引數中使用等號或逗號

如果引數中含有等號,請使用下列格式提供引數:

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

如果引數使用半形逗號,請參閱設定環境變數,瞭解如何逸出這些引數。

查看容器設定

如要查看 Cloud Run 作業目前的容器設定,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run 作業頁面:

    前往 Cloud Run jobs

  2. 按一下所需工作,開啟「工作詳細資料」頁面。

  3. 按一下「查看及編輯工作設定」

  4. 在設定詳細資料中找出容器設定。

gcloud

  1. 使用下列指令:

    gcloud run jobs describe JOB_NAME
  2. 在傳回的設定中找出容器設定。

設定 Sidecar 部署作業的容器啟動順序

如要在側車部署中指定容器啟動順序,請使用容器依附元件功能。您可以指定任何有依附元件的容器,並列出這些容器依附的容器。系統一律會先啟動沒有任何依附元件的容器,且會同時啟動。

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 指定啟動順序:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run 頁面:

    前往 Cloud Run

    • 如要查看現有工作,請按一下「Jobs」(工作)。然後按一下清單中的工作,並選取「View and edit job configuration」(查看及編輯工作設定),即可顯示「Edit Job」(編輯工作) 表單。
    • 如要建立新工作,請按一下「Deploy container」(部署容器),然後選取「Job」(工作),顯示「Create job」(建立工作) 表單。
  2. 如果是新工作,請指定工作名稱、工作容器網址、區域和工作數量。在「容器、磁碟區、網路與安全性」分頁中,執行下列操作:

    1. 設定主要工作容器。
    2. 如要新增部署的每個 Sidecar 容器,請按一下「新增容器」
    3. 如果容器依附於其他容器,請使用「容器啟動順序」選單,選取 Cloud Run 必須在目前容器之前啟動的容器。
  3. 如果是現有工作,請針對每個容器執行下列步驟:

    1. 檢查「容器啟動順序」選單中列出的容器。
    2. 如果容器相依於其他容器,請使用「容器啟動順序」選單選取這些容器。
  4. 完成其他必要設定,然後按一下「建立」(新工作) 或「更新」(現有工作)。等待部署完成。

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 如要將多個容器部署至工作,並指定啟動順序,請執行下列指令:

    gcloud beta run create JOB \
       --container CONTAINER_1_NAME --image='JOB_IMAGE' \
       --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
       --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME

    取代:

    • JOB 替換成您要部署的工作名稱。您可以完全省略這個參數,這樣系統會提示您輸入工作名稱。
    • CONTAINER_1_NAME,並為主要工作容器命名。
    • JOB_IMAGE,並參照主要工作容器映像檔,例如 us-docker.pkg.dev/cloudrun/container/job:latest
    • CONTAINER_2_NAME 替換為 Sidecar 容器的名稱,例如 sidecar
    • SIDECAR_IMAGE,並參照 Sidecar 容器映像檔。

    如要在部署指令中設定每個容器,請在 container 參數後提供每個容器的設定。

YAML

  1. 如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 更新 container-dependencies 屬性:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      annotations:
        run.googleapis.com/launch-stage: BETA
      name: JOB
    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 則最後啟動。

  3. 使用下列指令建立或更新作業:

    gcloud run jobs replace job.yaml