Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在公共github repo中保证Laravel.env文件的安全_Laravel_Docker_Github - Fatal编程技术网

如何在公共github repo中保证Laravel.env文件的安全

如何在公共github repo中保证Laravel.env文件的安全,laravel,docker,github,Laravel,Docker,Github,在我当前的工作流中,我将.env文件保留在提交之外,因为它们包含密码/机密等。我将开始使用Docker容器,这会导致.env文件出现问题:我还需要推送.env文件,以便创建容器。但是,由于项目是公共的,任何人都可以看到我的.env文件。当我将该文件推送到github时,是否有办法隐藏该文件,但仍可以在构建中访问该文件?您需要的是一个docker secret,其中docker引擎持有该秘密,并将其注入容器中。不幸的是,这个概念与docker swarm相关,不能在单个主机上使用 与docker

在我当前的工作流中,我将.env文件保留在提交之外,因为它们包含密码/机密等。我将开始使用Docker容器,这会导致.env文件出现问题:我还需要推送.env文件,以便创建容器。但是,由于项目是公共的,任何人都可以看到我的.env文件。当我将该文件推送到github时,是否有办法隐藏该文件,但仍可以在构建中访问该文件?

您需要的是一个
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中显式提交任何内容。