設定工作容器

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

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

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

本頁說明如何為 Cloud Run 作業中的容器設定指令、引數和啟動順序。

必要的角色

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

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

設定進入點和引數

您可以使用Google Cloud 控制台、gcloud CLI、YAML 或 Terraform,設定工作的指令進入點和引數:

控制台

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

    前往 Cloud Run。

  2. 從 Cloud Run 導覽選單中選取「作業」:

    1. 如要建立新工作,請按一下「Deploy container」(部署容器),填寫初始工作設定頁面。

    2. 如要設定現有工作,請選取該工作,然後按一下「查看及編輯工作設定」。

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

  4. 指定容器要執行的指令 (如果不是容器中定義的指令)。

  5. 選用:指定進入點指令的引數。

  6. 按一下「建立」或「更新」。

gcloud

  • 如要為新工作設定啟動指令和引數,請執行下列指令:

    gcloud run jobs create JOB --image IMAGE_URL --command COMMAND --args ARG1,ARG_N

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
    • COMMAND:如果未使用預設指令,容器啟動時要執行的指令。
    • ARG1:傳送至容器指令的引數。如要使用多個引數,請以半形逗號分隔,例如 --args="arg1", "arg2", "arg3"。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。
  • 如要更新現有工作的指令和引數,請執行下列指令:

    gcloud run jobs update JOB --command COMMAND --args ARG1,ARG_N 
  • 如要清除所有進入點指令和引數,請執行下列指令:

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

YAML

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

    gcloud run jobs describe JOB --format export > job.yaml
  2. 更新 args: 和 command 屬性:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                args:
                - ARG1'
                - ARG_N
                command:
                - COMMAND
                

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
    • ARG1:傳送至容器指令的引數。您也可以視需要指定其他引數,但每個引數都必須另起一行。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。
    • COMMAND:如果未使用預設指令,容器啟動時要執行的指令。
  3. 更新現有工作設定:

    gcloud run jobs replace job.yaml

Terraform

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

在 Terraform 設定的 google_cloud_run_v2_job 資源中新增下列項目:
resource "google_cloud_run_v2_job" "default" {
 name     = "JOB"
 location = "REGION"

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

更改下列內容:

  • JOB:Cloud Run 工作名稱。
  • REGION: Google Cloud 區域。例如:europe-west1。
  • COMMAND:如果未使用預設指令,容器應從哪個指令開始。
  • ARG1:傳送至容器指令的引數。視需要指定其他引數。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。

在引數中使用等號或半形逗號

如果在引數中使用等號,請按照下列格式提供引數:

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

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

設定目前使用的目錄

目前使用的目錄是容器執行指令和引數的位置。部署新服務或現有服務時,您可以為容器程序指定自訂目前使用的目錄。如未指定,系統會使用容器映像檔的預設工作目錄。如要將這個欄位重設為預設值,請傳遞空字串或移除該欄位。

您可以使用 gcloud CLI、YAML 或 Terraform 設定目前使用的目錄:

gcloud

如要更新現有工作的目前使用的目錄,請執行下列指令:

gcloud run jobs update JOB --workdir WORKING_DIR

更改下列內容:

  • JOB:Cloud Run 工作名稱。
  • WORKING_DIR:容器目前使用的目錄。如未指定,系統會使用容器映像檔的預設值。如要將這個欄位重設為預設值,請傳遞空白字串 ""。

如要在建立工作時指定目前使用的目錄,請執行下列指令:

gcloud run jobs create JOB --image IMAGE_URL --workdir WORKING_DIR

更改下列內容:

  • JOB:Cloud Run 工作名稱。
  • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
  • WORKING_DIR:容器目前使用的目錄。如未指定,系統會使用容器映像檔的預設值。如要將這個欄位重設為預設值,請傳遞空字串 ""。

YAML

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

    gcloud run jobs describe JOB --format export > job.yaml
  2. 更新 workingDir: 屬性:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       spec:
         template:
           spec:
             containers:
             - image: IMAGE_URL
               workingDir: WORKING_DIR
               

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
    • WORKING_DIR (選用):容器的工作目錄。如未指定,系統會使用容器執行階段的預設值,這可能會在容器映像檔中設定。
  3. 更新現有工作設定:

    gcloud run jobs replace job.yaml

Terraform

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

在 Terraform 設定的 google_cloud_run_v2_job 資源中新增下列項目:
resource "google_cloud_run_v2_job" "default" {
 name     = "JOB"
 location = "REGION"

 template {
   template {
     containers {
       image = "us-docker.pkg.dev/cloudrun/container/job"
       working_dir = WORKING_DIR
     }
   }
 }
}

更改下列內容:

  • JOB:Cloud Run 工作名稱。
  • REGION: Google Cloud 區域。例如:europe-west1。
  • WORKING_DIR (選用):容器的工作目錄。如未指定,系統會使用容器執行階段的預設值,這可能是在容器映像檔中設定。

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

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

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

控制台

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

    前往 Cloud Run。

  2. 如要建立新工作,請按照下列步驟操作:

    1. 按一下「Deploy container」(部署容器)。
    2. 指定工作名稱、工作容器網址、區域和工作數量。
    3. 按一下「容器、網路、安全性」展開該部分。
    4. 設定主要工作容器。
    5. 如要新增部署的每個邊車容器,請按一下「新增容器」。
    6. 如果容器依附於其他容器,請使用「容器啟動順序」選單,選取 Cloud Run 必須在目前容器之前啟動的容器。
  3. 如要設定現有工作,請按照下列步驟操作:

    1. 選取要更新的工作。
    2. 按一下「查看及編輯工作設定」。
    3. 按一下「容器、連線、安全性」展開該部分。
    4. 如果容器相依於其他容器,請使用「容器啟動順序」選單選取這些容器。
  4. 完成其他必要設定,然後按一下「建立」建立新工作,或按一下「更新」更新現有工作。等待部署完成。

gcloud

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

  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:Cloud Run 工作名稱。
  • CONTAINER_1_NAME:主要工作容器的名稱。
  • JOB_IMAGE:主要工作容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
  • CONTAINER_2_NAME:Sidecar 容器的名稱,例如 sidecar。
  • SIDECAR_IMAGE:邊車容器映像檔的參照。

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

YAML

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

    gcloud run jobs describe JOB --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

    如果存在 job.yaml 檔案,gcloud run jobs replace 指令預設會使用該檔案。

查看容器設定

如要查看 Cloud Run 作業目前的容器設定,請使用 Google Cloud 控制台或 Google Cloud CLI:

控制台

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

    前往 Cloud Run jobs

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

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

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

gcloud

  1. 執行下列指令:

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