【发布时间】:2021-05-26 08:59:02
【问题描述】:
我需要在不同的环境中运行测试:DEV、STAGING、PRODUCTION。
不用说,上述环境的环境变量/秘密显然会有所不同。
我的快速解决方案是为每个环境创建一个 env 文件,例如 dev.env、staging.env 和 prod.env
但根据流行的 dotEnv npm 包和 12 Factor 应用程序的文档,不建议在您的 repo 中包含多个 .env 文件。
请给我一个管理多个环境的环境变量的实用解决方案。
【问题讨论】:
-
在你的仓库中?但是
.env文件包含 API 密钥和加密哈希等秘密,它们不应该被提交并且是你的回购的一部分。.env文件的全部意义在于每台机器都有一个,因此您可以根据机器/环境精确地在其中包含内容:开发、登台、生产。还是我错过了什么? -
@JeremyThille 不应将秘密放入
.env文件中,假设它们已在 repo 中检查。秘密应该由专门的机制单独和安全地处理!现在,不将 env 文件检查到 repo 会产生不同的问题:我们将它保存在哪里?我们如何备份它?我们如何跟踪变化?
标签: javascript node.js security environment-variables password-protection