Node.js环境下Heroku config vars/env vars配置后不生效问题求助
问题根因
Heroku的heroku ps:exec命令进入运行中dyno的交互环境时,默认不会主动加载应用的配置变量,属于官方设计的预期行为,和你的配置操作无关。
解决方案
- 第一步:配置变量设置完成后必须重启dyno,新配置才会加载到运行中的实例,执行命令:
heroku ps:restart
- 第二步:进入exec容器后手动加载应用配置,执行以下命令即可读取到所有通过
config:set设置的变量:
source /app/.profile.d/heroku-exec.sh
- 若需要每次进入exec自动加载配置,可将上述source命令添加到应用根目录的
.bashrc文件中。
验证方法
你可以先通过一次性dyno验证配置本身是否生效,执行命令:
heroku run node -e "console.log(process.env.TESTVAR)"
如果该命令正常输出123,说明你的配置完全正确,仅exec环境未加载变量。
额外排查点
如果上述操作后应用运行时仍无法读取变量,检查你的项目启动脚本或框架配置是否存在过滤、覆盖环境变量的逻辑:
- 部分Node框架会默认仅加载白名单前缀的环境变量
- 部分自定义启动脚本会在启动时重置
process.env对象
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

