ali*_*ien 12 filesystems performance docker docker-compose yarnpkg
我对使用 docker 不是很熟悉,这是将开发环境迁移到 docker 的大型企业应用程序的一部分。
现在,yarn install 在 docker 之外大约需要10 分钟才能完成,这主要是Linking Dependencies...逐步完成的,因为我猜有超过 3 万个对象要链接。在第一个之后yarn install,只需1 秒即可完成。如果我更改一个依赖项,大约需要10 秒才能完成。所以它比10分钟快得多!
但是在 docker 内部,无论依赖项是否改变,每次大约需要5-10 分钟。
任何想法为什么会发生这种情况?
我们使用 docker-compose 并有几个不同的进程,其中之一是节点服务器。每当 package.json 更改时,节点服务器都会运行 yarn install,但这种情况相当频繁(每天更新几次)。所以 yarn install 一天运行几次。理想情况下,这将与在 docker 之外运行它一样快,但我不确定从哪里开始寻找。是否有设置或某些东西可以删除每个上的纱线缓存docker-compose restart node,或者什么?
我们基本上有这个docker-compose.yml:
services:
...
node:
image: myimage:latest
...
volumes:
- ./:/app:cached
- ./node_modules_docker:/app/node_modules:cached
working_dir: /app
...
...
Run Code Online (Sandbox Code Playgroud)
似乎最新的“Docker Desktop for Mac Edge”版本以某种方式优化了文件的共享方式。
使用最新版本(今天是 2.5.3):https : //docs.docker.com/docker-for-mac/edge-release-notes/
现在,yarn install在 docker 中运行似乎和在我的 mac 上运行一样快。
希望它会帮助某人。
编辑 2021/02/26 :
我让 docker 保持最新(3.x),不知何故我再次尝试了非常慢的纱线安装。
使用 Docker 2.5.4 (edge) 使事情再次变得更快:https : //github.com/docker/docker.github.io/blob/master/docker-for-mac/edge-release-notes.md
| 归档时间: |
|
| 查看次数: |
4901 次 |
| 最近记录: |