我用 nodejs 开发一个应用程序并做出反应。我在不同的环境中使用 dotenv 进行配置。
我使用 TFS 2017 构建和发布我的应用程序。
添加生产环境的 .env 文件的最佳做法是什么?
我用 nodejs 开发一个应用程序并做出反应。我在不同的环境中使用 dotenv 进行配置。
我使用 TFS 2017 构建和发布我的应用程序。
添加生产环境的 .env 文件的最佳做法是什么?
生产配置可能难以维护。您可以使用任何模块,甚至可以编写自己的自定义模块来将环境变量加载到您的应用程序中。
但是,为每个产品在本地维护生产.env
文件(即提交它们或将它们放在 docker 映像中是一个坏主意。如果您碰巧更改了其中一些配置,则必须手动更改每个应用程序的代码,构建docker 镜像(如果需要)并重新部署。如果只有几个应用程序,这可能很容易。但是如果相关应用程序的数量增加(通常发生在基于微服务的架构的情况下) - 它们都共享凭据,用于数据库连接的 ips 等。手动更改代码和重新部署所有应用程序成为一项繁重的任务。
通常,开发人员倾向于保留所有凭据和环境变量的中央存储库。例如,AWS 提供参数存储,MS Azure 提供Azure Key vault。在这种情况下,所有参数都是在启动时获取的,我们所要做的就是重新启动应用程序。
所以通常人们只设置一个全局变量 NODE_ENV (as prod
or dev
),动态获取基于 NODE_ENV 运行之类的所有环境变量env $(node read-env-variables.js) node app.js
。