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

Google Cloud Build结合Pack与Secrets Manager无法访问环境变量

问题原因

你混淆了两个独立的环境:

  1. Cloud Build步骤进程环境:secretEnv注入的密钥变量仅在此环境中可用
  2. Buildpack构建过程环境:这是pack启动的应用构建环境,默认不会继承Cloud Build步骤的环境变量

你之前的写法--env=SEC_A=$$SEC_A会被Cloud Build转义为--env=SEC_A=$SEC_A传递给pack,而pack会尝试在Buildpack构建环境中读取$SEC_A,但该环境中没有这个变量,最终导致镜像里的环境变量为空。

两种可行解决方案

方案1:让pack从Cloud Build步骤环境读取变量值

将secret变量映射到Cloud Build步骤的环境中,再让pack通过变量名直接引用该值:

steps:
- name: gcr.io/k8s-skaffold/pack
  args:
      - build
      - '$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA'
      - '--builder=gcr.io/buildpacks/builder:v1'
      - '--network=cloudbuild'
      - '--path=.'
      - '--env=SEC_A'  # 仅指定变量名,pack会从当前步骤环境读取对应值
      - '--env=SEC_B'
  secretEnv: ['SEC_A', 'SEC_B']
  id: Buildpack
  entrypoint: pack
  env:
    - SEC_A=$SEC_A  # 将secret变量注入到步骤环境
    - SEC_B=$SEC_B

availableSecrets:
    secretManager:
    - versionName: projects/<pid>/secrets/SEC_A/versions/latest
      env: SEC_A
    - versionName: projects/<pid>/secrets/SEC_B/versions/latest
      env: SEC_B

方案2:直接在--env参数中注入secret值

利用Cloud Build的变量替换机制,将secret值直接写入到--env参数中(需用双引号包裹,确保Cloud Build完成变量替换):

steps:
- name: gcr.io/k8s-skaffold/pack
  args:
      - build
      - '$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA'
      - '--builder=gcr.io/buildpacks/builder:v1'
      - '--network=cloudbuild'
      - '--path=.'
      - "--env=SEC_A=$SEC_A"  # 双引号触发Cloud Build替换$SEC_A为实际secret值
      - "--env=SEC_B=$SEC_B"
  secretEnv: ['SEC_A', 'SEC_B']
  id: Buildpack
  entrypoint: pack

availableSecrets:
    secretManager:
    - versionName: projects/<pid>/secrets/SEC_A/versions/latest
      env: SEC_A
    - versionName: projects/<pid>/secrets/SEC_B/versions/latest
      env: SEC_B

验证方法

可以在Build步骤前添加测试步骤,确认secret变量是否正确加载:

steps:
- name: 'alpine'
  args: ['echo', 'SEC_A: $SEC_A', 'SEC_B: $SEC_B']
  secretEnv: ['SEC_A', 'SEC_B']
  id: TestSecrets
# 后续添加你的Buildpack构建步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:16:03