You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Build中secretEnv无法读取Secret Manager环境变量

问题原因与解决方法

核心问题是:你的Test步骤通过docker run启动了一个新容器,Cloud Build注入到步骤环境的DJANGO_SECRET不会自动传递到这个新容器内部,而且你的Test步骤配置还存在语法错误。

修复步骤:

  1. 修正Test步骤的语法错误
    你当前的Test步骤中,secretEnv配置后多了一行- GCP_INFOS,这会导致YAML解析失败,先删掉这一行。

  2. 在docker run中显式传递环境变量
    需要在docker run命令里加上-e DJANGO_SECRET=$DJANGO_SECRET参数,把Cloud Build步骤环境中的DJANGO_SECRET传递到运行的测试容器内。

修正后的Test步骤配置如下:

- name: gcr.io/cloud-builders/docker
  args:
    - run
    - '--rm'
    - '-e'
    - 'DJANGO_SECRET=$DJANGO_SECRET'
    - $_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA
    - bash
    - '-c'
    - |
      export DEBUG=true
      echo
      env
      python manage.py test
  secretEnv: ['DJANGO_SECRET']
  id: Test

补充说明:

你添加的测试步骤能拿到密钥,是因为那个步骤直接在Cloud Build提供的slim容器中执行,secretEnv会直接注入到该容器的环境变量里;而Test步骤是启动了一个你自己构建的镜像容器,两个容器的环境是完全隔离的,必须通过-e参数手动传递需要的环境变量。

内容的提问来源于stack exchange,提问作者nope_that_does_not_work

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:59:56