GCP部署含OpenAI API Key项目时Docker运行报错排查
问题原因分析
环境变量作用域不匹配:你在Cloud Shell终端用
export OPENAI_API_KEY='xxx'设置的环境变量,仅对当前终端会话有效。Docker容器是独立的隔离环境,不会自动继承宿主机终端的环境变量,导致容器内os.getenv("OPENAI_API_KEY")返回None,将None赋值给os.environ字典时触发类型错误。本地终端运行正常的逻辑:直接在终端执行Python代码时,代码是在已设置环境变量的当前会话中运行的,能正常读取到
OPENAI_API_KEY的值,因此不会报错。
快速修复方式
- 运行容器时通过
-e参数直接传递环境变量:docker run -e OPENAI_API_KEY='sh-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' app - 也可以将环境变量写入
.env文件,通过--env-file参数加载:
注意:不要将包含敏感密钥的docker run --env-file .env app.env文件提交到代码仓库。
内容的提问来源于stack exchange,提问作者Kristada673
相关产品推荐
相关产品推荐

