我已阅读有关十二因素应用程序的配置 - 第 III 节的信息,并在 NodeJS 中搜索了一种方法。似乎大多数人建议使用dotenv将配置存储在环境变量中。
然而,dotenv 似乎与十二因素应用程序相矛盾,如下所述:
另一种配置方法是使用未检入修订控制的配置文件,例如 Rails 中的 config/database.yml。与使用检入代码仓库的常量相比,这是一个巨大的改进,但仍然存在弱点:很容易错误地将配置文件检入到代码仓库;配置文件倾向于分散在不同的地方和不同的格式,使得在一个地方查看和管理所有配置变得困难。此外,这些格式往往是特定于语言或框架的。
十二因素应用程序将配置存储在环境变量中(通常缩写为 env vars 或 env)。环境变量很容易在部署之间更改,而无需更改任何代码;与配置文件不同,它们被意外签入代码仓库的可能性很小;与自定义配置文件或其他配置机制(如 Java 系统属性)不同,它们是与语言和操作系统无关的标准。
理解这个声明,似乎使用 dotenv,您将创建一个配置文件.env
,然后将它们导出为环境变量。
这不会违反十二因素应用程序,因为.env
文件可能会意外签入代码仓库吗?