Docker for Mac – 极慢的请求时间
-
我的
.dockerignore
设置为忽略繁忙的目录,但是修改单个文件似乎对运行性能有很大的影响。 -
如果我更改原始目录中的一个非依赖文件(例如
.php
或.jpg
),则下一个请求的执行速度非常慢。 - 随后的请求很快,直到我改变了原始目录中的任何文件,然后请求时间返回到〜10秒。
- 无论是
:cached
或:delegated
有所作为
无论如何加快这一点? 考虑到只有一个文件已被更改,Docker似乎在后台做了很多事情?
.dockerignore
文件不影响卷装入。 它仅在图像构build期间向Docker守护程序发送上下文时使用。 所以这不是一个因素。
在某些情况下performance不佳是Docker for Mac中长期存在的已知问题。 他们在文档中讨论这个主题。 根据我的经验,fs事件扫描程序发生的性能最差,即您正在观察某个目录的更改并重新加载应用程序服务器。 我的处理方式是禁用fs事件监视器,并在需要时手动重新启动应用服务器。 (可能会或者可能不适合您的情况。)
简单的答案是你可以尝试第三方的解决scheme,或者你可以接受在开发中的糟糕performance,意识到它不会跟随你的产品(这可能不会在Mac平台上)。
我遇到了类似的问题,但在Windows上。 我得到的方式是使用stream浪汉。 Vagrant对使用Docker进行configuration有很大的支持。 在你的Vagrantfile
设置共享目录来使用rsync。 这将复制VM上的目录。 Docker可以在虚拟机的内存中快速访问这些目录。
这是一篇很棒的文章,帮助我得出这个结论: http : //blog.zenika.com/2014/10/07/setting-up-a-development-environment-using-docker-and-vagrant/
有关使用docker供应vagrant的更多信息: https : //www.vagrantup.com/docs/provisioning/docker.html
有关vagrant rsync的更多信息: https : //www.vagrantup.com/docs/synced-folders/rsync.html
我希望这可以帮助你和我一样。