我的.dockerignore
设置为忽略繁忙目录,但更改单个文件似乎会对运行性能产生巨大影响。
如果我对原始目录中的单个非依赖文件(例如.php
或.jpg
)进行了更改,则下一个请求的执行速度非常慢。 / p>
:cached
或:delegated
都没有任何区别反正有加速吗?考虑到只有一个文件被改变了,看起来Docker在后台做了很多工作?
答案 0 :(得分:0)
.dockerignore
文件不会影响卷装入。它仅在图像构建期间向Docker守护程序发送上下文时使用。所以这不是一个因素。
在某些情况下性能不佳是Docker for Mac中长期存在的已知问题。他们讨论了这个话题in the documentation。根据我的经验,使用fs事件扫描程序会出现性能最差的情况,即您正在查看某个目录以进行更改并重新加载应用程序服务器作为响应。我的处理方法是禁用fs事件观察器并在需要时手动重启app服务器。 (根据您的情况可能或可能不实用。)
简短的回答是,您可以尝试第三方解决方案,或者您可以接受开发中的不良性能,意识到它不会跟随您进行生产(可能不会出现在Mac平台上)。
答案 1 :(得分:0)
我在Windows上遇到了类似的问题。我绕过它的方式是使用流浪汉。 Vagrant非常支持使用Docker进行配置。在Vagrantfile
设置共享目录以使用rsync。这将复制VM上的目录。 Docker可以在VM上的内存中快速访问这些目录。
这篇文章很有帮助我得出了这个结论:http://blog.zenika.com/2014/10/07/setting-up-a-development-environment-using-docker-and-vagrant/
有关使用泊坞窗配置流浪汉的更多信息:https://www.vagrantup.com/docs/provisioning/docker.html
有关vagrant rsync的更多信息:https://www.vagrantup.com/docs/synced-folders/rsync.html
我希望这对你有所帮助。