2

在 Windows 操作系统上工作。

我使用 node-config 的节点应用程序没有使用 docker 环境变量。它始终使用默认配置。

我正在使用此处描述的节点配置自定义环境变量:https ://github.com/lorenwest/node-config/wiki/Environment-Variables#custom-environment-variables

在本地运行应用程序时一切正常。配置通过默认配置,并在设置时采用我的用户变量中定义的配置。

问题

  • 我启动了一个设置了所有必需环境变量的 docker 实例。
  • 我通过运行验证环境变量docker exec container_name env

但是,节点应用程序仍然使用默认配置,而不是环境变量。

我不确定我可能缺少什么设置。

4

1 回答 1

1

我是node-config. 我没有使用 Docker 或 Heroku 进行测试,但这主要是一个排序问题。只要在require('config')发生之前设置了环境变量,它们就会起作用——此时 Docker 或 Heroku 并不重要。那时,该活动正在 Node.js JavaScript 引擎内部进行。

试试这个简单的测试:就在你所在的行之前require('config'),使用console.log或等效项打印出你关心的环境变量。我希望您会发现,当它不起作用时,是因为在node-config加载之前未设置环境变量。

于 2019-03-25T14:10:26.693 回答