最近,在 mac 上面安装了 docker,然后让开发环境运行在 docker 上面
总的来说感觉不错
但是同一个页面,在 linux 上面的时候需要 4 秒,在 mac for docker 上面需要 25 秒
调查了一下原因
osxfs 的介绍,有兴趣的可以研究下
https://docs.docker.com/docker-for-mac/osxfs/#performance-issues-solutions-and-roadmap
搜索了一下解决办法
试了下用 vagrant 安装 linux,然后 docker 跑在 linux 上面,用 nfs 来同步
速度确实变快了,但是多安装了一层总感觉有点麻烦
所以调查了一下其他的解决办法
在 docker-for-mac 的网站和 github 的 issue 里面有介绍
试了下感觉不错,总结下如何使用的
$ gem install docker-sync
$ brew install fswatch
$ brew install unison
$ brew install eugenmayer/dockersync/unox
$ docker-sync start
version: '2'
syncs:
sync-folder:
src: '.'
sync_strategy: 'unison'
# 同步时的用户ID,不指定的话为root
sync_userid: '1000'
sync_excludes: ['vendor/bundle/', 'node_modules', 'tmp']
具体设置可以看这里
version: '3'
volumes:
sync-folder:
external: true
services:
app:
volumes:
- sync-folder:/www/sample_project
把 mac 的当前文件夹和 docker 服务器里面的/www/sample_project 进行同步
$ docker-compose -f docker-compose.yml -f docker-compose-dev.yml up -d
然后无论在 mac 还是在 docker 里面进行文件修改,都会自动进行同步
有时候不知道什么原因无法同步的时候可以重启 docker-sync
$ docker-sync clean
$ docker-sync start
mac for docker 的文件同步很慢,目前发现两种解决方法
个人比较喜欢第二种,有更好的解决办法请回复我