如何在公共github repo中保证Laravel.env文件的安全
在我当前的工作流中,我将.env文件保留在提交之外,因为它们包含密码/机密等。我将开始使用Docker容器,这会导致.env文件出现问题:我还需要推送.env文件,以便创建容器。但是,由于项目是公共的,任何人都可以看到我的.env文件。当我将该文件推送到github时,是否有办法隐藏该文件,但仍可以在构建中访问该文件?您需要的是一个如何在公共github repo中保证Laravel.env文件的安全,laravel,docker,github,Laravel,Docker,Github,在我当前的工作流中,我将.env文件保留在提交之外,因为它们包含密码/机密等。我将开始使用Docker容器,这会导致.env文件出现问题:我还需要推送.env文件,以便创建容器。但是,由于项目是公共的,任何人都可以看到我的.env文件。当我将该文件推送到github时,是否有办法隐藏该文件,但仍可以在构建中访问该文件?您需要的是一个docker secret,其中docker引擎持有该秘密,并将其注入容器中。不幸的是,这个概念与docker swarm相关,不能在单个主机上使用 与docker
docker secret
,其中docker引擎持有该秘密,并将其注入容器中。不幸的是,这个概念与docker swarm相关,不能在单个主机上使用
与docker secret
类似,docker compose
也可以管理机密,但方法不同于docker secret
。docker compose
不需要docker swarm
。有关如何使用docker compose secrets的更多详细信息,请查看
在任何情况下,您都需要找到其他方法将机密文件从您的环境移动到部署服务器。一种方法是对机密文件使用私有存储库。提交.env文件而不是将env dist作为模板提交从来都不是一个好主意。对于docker,您可以在docker运行期间使用-e发送/传递env变量。好的,我刚刚了解了“docker--env文件列表”。然而,我仍然不清楚我将把这个文件放在github上的什么地方,这样它就可以安全地不被公共存储库中的窥探者发现。你根本没有把它放在git中。我一定是误解了流程。(也许我最初的问题不是很清楚…)。我的希望是在我推到master之后使用自动部署。如果我这样做,github可能需要访问.env文件。您使用的任何部署平台都应该能够为您注入该env变量,而无需在git中显式提交任何内容。