node.js - 如何在持续集成中管理 .env 配置

标签 node.js continuous-integration dotenv

我用 nodejs 开发一个应用程序并使用react。我在不同的环境中使用 dotenv 进行配置。

我使用 TFS 2017 构建和发布我的应用程序。

添加我的生产环境 .env 文件的最佳实践是什么?

最佳答案

生产配置可能难以维护。您可以使用任何模块甚至编写自己的自定义模块来将环境变量加载到您的应用程序中。

但是,为每个产品在本地维护生产 .env 文件(即将它们提交或将它们放入您的 docker 镜像中是一个坏主意。如果您碰巧更改了其中的一些配置,您将必须手动更改每个应用程序的代码,构建 docker 镜像(如果需要)并重新部署。如果只有几个应用程序,这可能很容易。但是如果相关应用程序的数量增加(通常发生在基于微服务架构的案例)——它们都共享凭据、用于数据库连接的 ip 等。手动更改代码和重新部署所有应用程序成为一项繁忙的任务。

通常,开发人员倾向于保留所有凭据和环境变量的中央存储库。例如,AWS 提供 parameter store和 MS Azure 提供 Azure Key vault .在这种情况下,所有参数都在启动时获取,我们所要做的就是重新启动应用程序。

所以通常人们只设置一个全局变量 NODE_ENV(如 proddev),基于 NODE_ENV 运行诸如 env $( node read-env-variables.js) node app.js.

关于node.js - 如何在持续集成中管理 .env 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57654607/

相关文章:

node.js - 从自定义路径预加载 env 文件

json - 如何将 JSON 包集成到 Jade 模板中?

javascript - 如何使用 javascript 解析(获取值)嵌套的 json 数据

javascript - 如何使 .env 变量在 JS 类构造函数中工作?

deployment - 如何设置用户帐户以在 Team City 中运行 build runner

docker - 将图像推送到 Github 包会抛出 "denied: not_found: owner not found"

javascript - 是否可以在 process.env 值中使用字符串文字?

node.js - KOA2 中未定义路由器

javascript - 将 Octave 代码集成到平均堆栈网站

java - Mercurial 和 Java 项目的一种持续集成工作流程