通过使用dotenv,我可以在将开发 .env 文件推送到 git 存储库之前忽略它,它符合The Twelve-Factor App config factor。它可以防止配置暴露给其他人,尤其是开源项目。
但是在将其部署到生产环境时,我被卡住了,无论是使用云部署还是使用 docker。
我怎样才能包含这个文件?我应该将文件保存到Vault中吗?
请帮助我了解如何保护我的部署环境。
通过使用dotenv,我可以在将开发 .env 文件推送到 git 存储库之前忽略它,它符合The Twelve-Factor App config factor。它可以防止配置暴露给其他人,尤其是开源项目。
但是在将其部署到生产环境时,我被卡住了,无论是使用云部署还是使用 docker。
我怎样才能包含这个文件?我应该将文件保存到Vault中吗?
请帮助我了解如何保护我的部署环境。
你没有。服务器环境(docker 或其他)需要配置自己的环境变量,而不是开发环境变量。在您配置为应用程序的默认值时,任何相同的值,即使未设置变量,它们也具有该值。
您可以使用文件传输协议(例如 filezilla 或 cyberduck)并将文件传输到您的生产服务器环境。确保您发送到服务器的 .env 文件包含生产数据库的凭据,而不是开发数据库的凭据,依此类推。您也可以将环境变量添加到远程服务器的 .env 或 .bashrc 文件中,但与 .env 文件相比,这可能是不可取的。只要除了您之外没有人可以访问远程服务器(docker、heroku、aws 等),您的凭据就应该是安全的。永远不要共享您的 .pem 文件。