我非常喜欢Twelve Factors Manifesto背后的想法。我正在尝试将它们应用于Python / Django项目的小型微服务式部署。 Django项目打包在一个Docker容器中,该容器通过Docker Hub部署。
我想要了解的一件事是如何处理配置文件和环境变量。 12因素应用程序的常识是配置应该存储为环境变量,而不是源代码控制。我正在考虑使用django-environ来检查环境变量,以及用于开发的.env
文件。
如何在生产中设置这些环境变量呢?
ENV
。所以我可以在那里添加这些信息,但是我在Dockerfile中检查了源代码,所以这样做会失败。.env
文件,不将其检入源代码管理中。我可以使用.env
命令在构建映像时复制此生产COPY
文件。但这意味着开发人员可以访问数据库凭据。.env
文件,并部署到服务器。我觉得第三种选择是唯一有意义的选择。但即使在这种情况下,配置项仍然存储在一个文件中,而不是真正存储在环境变量中。
任何想法如何解决这个问题?