如何将环境变量从Cloud Build传递到Dockerfile并解决Doppler token报错
解决方案
你遇到的Doppler token缺失报错,核心原因是Cloud Build触发器中配置的_DOPPLER_TOKEN变量没有正确传递到Docker构建流程中,按以下步骤修改即可:
步骤1:调整Cloud Build配置
在docker构建步骤中,通过--build-arg参数将Cloud Build的substitution变量传递给Docker构建过程,参考配置片段:
steps: - name: 'gcr.io/cloud-builders/docker' args: - 'build' # 新增以下两行,将_DOPPLER_TOKEN传递为Docker构建参数 - '--build-arg' - 'DOPPLER_TOKEN=$_DOPPLER_TOKEN' - '-t' - '你的镜像地址' - '.' # 补充substitution变量声明 substitutions: _DOPPLER_TOKEN: '' options: # 开启动态变量替换 dynamic_substitutions: true
步骤2:修改Dockerfile接收并使用token
在Dockerfile开头声明构建参数接收传入的token,再配置给Doppler CLI即可:
# 新增行:声明接收Docker构建参数 ARG DOPPLER_TOKEN # 原有Doppler CLI安装步骤保持不变 RUN apt-get update && apt-get install -y apt-transport-https ca-certificates curl gnupg && \ curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor -o /usr/share/keyrings/doppler-archive-keyring.gpg && \ echo "deb [signed-by=/usr/share/keyrings/doppler-archive-keyring.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler.list && \ apt-get update && apt-get install -y doppler # 新增行:配置Doppler token RUN doppler configure set token ${DOPPLER_TOKEN} --scope / # 后续正常使用doppler拉取机密即可,示例: RUN doppler run -- 你的构建命令
注意事项
- 不要将DOPPLER_TOKEN硬编码到Dockerfile中,构建参数仅在构建阶段生效
- 如果镜像构建完成后不需要保留Doppler配置,可在构建最后一步执行
doppler configure erase --scope /清理token,避免残留到镜像中 - 若容器运行阶段也需要使用Doppler,不要通过构建参数传递token,改为容器运行时注入环境变量的方式更安全
内容的提问来源于stack exchange,提问作者Harshit Sharma
相关产品推荐
相关产品推荐

