好的,用户 Spiil 提供了一个解决方案,但我想详细说明要采取的确切步骤,因为我花了 12 个小时试图弄清楚,但是一旦你知道它是多么简单并解决了所有减速问题!
这里的关键是要了解此解决方案创建 NFS(网络文件系统)驱动器作为从 Docker 容器到您的 Mac 的通信方式,而不是标准的 OSX 文件系统,目前由于错误或方式非常慢它有效*
完全按照这些步骤操作。
1.) 在你的主目录中克隆这个 repo (https://github.com/IFSight/d4m-nfs)。为此,请打开终端并输入 cd ~
然后输入git clone https://github.com/IFSight/d4m-nfs
或者,您也可以在一个班轮中执行此操作git clone https://github.com/IFSight/d4m-nfs ~/d4m-nfs
2.) 接下来进入 d4m-nfs 文件夹并在 /etc 文件夹中创建一个新文件并将其命名为 d4m-nfs-mounts.txt
3.) 在其中添加以下代码行。
/Users/yourusername:/Users/yourusername:0:0
以上内容允许您仍然使用 docker-compose 的相关文件夹,并允许所有端口在其上连接,因此是 0:0。
编辑
不要把 /Volumes 放在这里!!
4.) 转到您的 docker 首选项并执行以下操作
确保只显示 /tmp 而没有其他内容。我的意思是,如果有其他任何东西,它就不会起作用,因为它会与脚本稍后为您创建的 NFS 系统产生冲突。重新启动 docker 和 docker-compose down 任何容器。
5.) 最后导航到我们在步骤 1 中创建的 d4m-nfs 目录并输入以下命令,/bin/bash d4m-nfs.sh
edit 键入上述命令的正确方法是 github (if-kenn) 的另一个用户指出,./d4m-nfs.sh 使用 Shebang 来运行它。
如果正确完成,应该没有错误,这应该可以工作。请注意不要以 sh d4m-nfs.sh 运行,这将产生错误,您必须删除导出文件才能重新开始。事实上,无论何时您进行任何更改,您都必须清除您的导出文件。
这就是我的样子。
编辑:: 重要——删除 /private 和卷!现在应该只是用户/用户名!
如果您看到除此之外的任何内容,则说明您没有使用 bash。如果出现任何错误,您可以在 Mac 中快速访问这样的导出文件,然后将其清除以重新开始。
只需选择转到文件夹
然后输入/etc/exports
这是一个很好的快捷方式,可以快速找到它并在您最喜欢的文本编辑器中将其清除。
还要确保没有容器正在运行,否则您将陷入 ........ 死循环。如果这种死循环继续,请确保升级 docker,然后重新启动计算机。是的,重新启动......这似乎是让它在我朋友的电脑上工作的唯一方法。参考这个(https://github.com/IFSight/d4m-nfs/issues/3)
注意....循环。我最近找到了另一个解决方案。确保您没有以 root 身份登录,并确保您将 git repo 拉入您的用户 ~ 文件夹而不是 root ~ 文件夹。换句话说,它应该在用户/用户名中。
此外,请确保 /tmp 文件夹具有完整的写入权限,因为脚本需要在此处写入,否则这也不起作用。 chmod 777 -R /tmp
6.) 如果您在运行脚本时正确操作,它将如下所示。
然后像往常一样在您的 symfony 项目文件夹(或您与 docker 一起使用的任何项目)中运行 docker-compose up -d ,一切都应该正常...除了不再减速!
您需要在重新启动计算机或 docker 时运行此程序。
另外请注意,如果出现安装错误,您可能没有将项目存储在用户/用户名目录中。请记住,这是我们安装它的地方。如果您的项目位于其他地方,则需要相应地修改 d4m-nfs-mounts.txt 文件。
其他信息: