1

我正在尝试构建 Docker 映像并将其部署到 Cloud Run。而且我想设置min-instances=1,这样我就可以避免冷启动。

我正在通过gcloudCLI 使用 Cloud Build 构建和部署它。

所以这是我从gcloudCLI 的第一次尝试:

gcloud builds submit . --config=./cloudbuild.yaml

以下是我的以下描述的构建步骤cloudbuild.yaml

steps:
  # STEP_1: DOCKER BUILDS IMAGE
  # STEP_2: DOCKER PUSHES IMAGE TO CLOUD REGISTRY

  # STEP_3: GCLOUD SHOULD DEPLOY TO CLOUD RUN (DESCRIBED BELOW)

  - name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
    entrypoint: gcloud
    args:
      - "run"
      - "deploy"
      - "my-service"
      - "--image=gcr.io/$PROJECT_ID/my-image"
      - "--platform=managed"
      - "--region=us-central1"
      - "--min-instances=1"

您会看到构建STEP_3运行:gcloud run deploy my-service ... min-instances=1

我收到以下错误:

The `--min-instances` flag is not supported in the GA release track on the 
fully managed version of Cloud Run. Use `gcloud beta` to set `--min-instances` on Cloud Run (fully managed).

所以我想我将不得不使用gcloud beta命令。但在这种情况下我有一些问题:

我是否还需要将beta命令添加到我的gcloud builds submit .命令中?

我应该如何设置它cloudbuilt.yaml?我是否将它添加到entrypoint或作为参数args

选项1

  - name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
    entrypoint: "gcloud beta"
    args:
      - "run"
   // ETC

选项 #2

  - name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
    entrypoint: gcloud
    args:
      - "beta"
      - "run"
   // ETC
4

1 回答 1

3

两者都没有隐藏的原因。

在 args 下使用。所有元素都连接成一个字符串。

于 2020-12-10T18:46:21.480 回答