[英]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.