繁体   English   中英

cloudbuild.yaml 文件中的 env 步骤参数未设置环境变量

[英]env step parameter in cloudbuild.yaml file not settings environment variable

我的cloudbuild.yaml文件看起来像

steps:
  # build the container image
  - name: "gcr.io/cloud-builders/docker"
    args: ["build", "-t", "gcr.io/$PROJECT_ID/backend:$COMMIT_SHA", "."]
    env:
      - "APP_ENV=production"
  # push the container image to Container Registry
  - name: "gcr.io/cloud-builders/docker"
    args: ["push", "gcr.io/$PROJECT_ID/backend:$COMMIT_SHA"]
  # Deploy container image to Cloud Run
  - name: "gcr.io/cloud-builders/gcloud"
    args:
      - "run"
      - "deploy"
      - "backend"
      - "--image"
      - "gcr.io/$PROJECT_ID/backend:$COMMIT_SHA"
      - "--region"
      - "us-central1"
      - "--platform"
      - "managed"
images:
  - "gcr.io/$PROJECT_ID/backend:$COMMIT_SHA"

它会构建一个新容器并将其部署到 Cloud Run,但它不会将 APP_ENV 环境变量设置为"production" 为什么会这样,我该怎么做?

我正在遵循本指南

steps:
- env: [...]

方法为运行docker build -t命令的 Cloud Build 容器设置环境变量,因此在这种情况下,只有它执行的docker build会获取APP_ENV变量(并且可能不使用它)。

您不应期望这会为 Cloud Run 设置环境变量。 为此,您需要在gcloud run deploy步骤中指定--set-env-vars--update-env-vars到 Cloud Run,方法是在上面指定其他args ,例如:

  - name: "gcr.io/cloud-builders/gcloud"
    args:
      - "run"
      - "deploy"
      ...
      - "--set-env-vars=KEY1=VALUE1"
      - "--set-env-vars=KEY2=VALUE2"
      ...

请参阅https://cloud.google.com/run/docs/configuring/environment-variables#command-line了解更多信息或阅读这篇文章,了解为 Cloud Run 应用程序指定环境变量的替代方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM