如何在微服务架构中正确管理 .env 文件

问题描述

我已经在一个具有微服务架构的项目上工作了一段时间,其中每个服务都有自己的环境变量,这些变量由每个服务/存储库的 .env 文件处理。

这些变量中的很大一部分与其他服务 IP 和外部资源密钥相关,它们在每个环境中都不同:开发、暂存和生产,因此 .env 不是一个简单的。

我们的开发速度很快,而且大多数情况下,这些变量会随着新功能和/或由处理与该服务相关的问题的团队成员实施的更改而变化。这导致几乎每次其他人想要使用某个服务时,他们都会被阻止,并且必须在此之前更新 .env 文件。因此,我们最终总是相互请求和共享 .env 文件,并且所有 .env 文件都缺乏“真实来源”。

我想知道之前是否有人遇到过这个问题或类似的问题,以及采取了哪些方法解决或改进它。

是否有任何应用程序或框架可以自动共享和管理团队中的 .env 文件

提前致谢!

编辑

需要说明的是,这些不会被添加到源代码管理中,并且会在 CI/CD 上得到正确处理。

我更多地谈论了本地开发、在本地设置服务以及以简单的方式使 .env 本地文件保持最新。

解决方法

以下是一些同事和社区提供的所有反馈的摘要:r/SoftwareEngineeringr/softwaredevelopment(谢谢大家)一些最有用的资源是:

我想引用 u/nickthemagicman commented 我认为需要牢记的重要一点:

但是由于你们仍然使用 .env 文件这么长时间而且它一直很混乱而且现在没有人解决这个问题,听起来你最大的障碍将是让团队购买在,因为听起来也没有集中管理。