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

如何在Vertex AI执行器运行时无额外操作传递.env文件内容至容器?

在Vertex AI中运行时传递.env文件到容器的方案

方法一:通过启动脚本加载.env(推荐)

构建镜像时不硬编码环境变量,而是添加一个启动脚本负责加载.env并启动服务:

  1. 编写启动脚本start.sh:
#!/bin/bash
# 加载挂载路径下的.env文件
if [ -f /mnt/env/.env ]; then
  # 过滤注释行并导出变量
  export $(grep -v '^#' /mnt/env/.env | xargs)
fi
# 执行主程序(这里以Jupyter Notebook为例)
exec jupyter notebook --ip=0.0.0.0 --port=8888
  1. 修改Dockerfile,将脚本加入镜像并设置为入口:
COPY start.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/start.sh
ENTRYPOINT ["start.sh"]
  1. 将.env文件上传到Google Cloud Storage(GCS)的某个目录。
  2. 创建Vertex AI执行器时,配置存储卷挂载:将GCS中存放.env的目录挂载到容器内的/mnt/env/路径。
    后续只需更新GCS中的.env文件,无需修改镜像或执行器配置,下次启动容器时会自动加载最新变量。

方法二:通过自定义启动命令直接加载

无需修改镜像,直接在Vertex AI执行器的启动命令中加入加载逻辑:

  1. 将.env上传到GCS,挂载该目录到容器内的/mnt/env/(步骤同方法一的3、4)。
  2. 在执行器配置的启动命令中填写:
export $(grep -v '^#' /mnt/env/.env | xargs) && jupyter notebook --ip=0.0.0.0 --port=8888

容器启动时会先加载.env变量,再启动服务。

注意事项

  • .env文件需遵循KEY=VALUE的格式,注释行以#开头,避免特殊字符导致加载失败。
  • 确保Vertex AI的服务账号拥有GCS存储桶的读取权限,否则无法加载.env文件。
  • 若包含敏感信息,建议使用Vertex AI Secrets Manager存储变量:在启动脚本中通过gcloud secrets versions access latest --secret=你的密钥名称拉取内容并导出,替代明文.env文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:29:10