我不能找到一个好的方法来设置一个开发环境在 OS X 上使用 Docker 和 Boot2Docker。我遇到的问题是如何管理源代码,以便:
理论上,这应该很容易做到,只要将我的源代码作为一个卷装入:
docker run -it -v /path/to/my/source/code:/src some-docker-image
不幸的是,有两个主要问题使得它在 OS X 上完全无法使用:
例如,如果源代码是 Docker 映像的一部分,Jekyll 需要多长时间来编译我的 网页:
> docker run -it brikis98/yevgeniy-brikman-homepage:v1 bash
root@7aaea30d98a1:/src# time bundle exec jekyll build
[...]
real 0m7.879s
user 0m7.360s
sys 0m0.600s
下面是完全相同的 Docker 映像,只不过这次我从 OS X 装入了源代码:
> docker run -it -v $(pwd):/src brikis98/yevgeniy-brikman-homepage:v1 bash
root@1521b0b4ce6a:/src# time bundle exec jekyll build
[...]
real 1m14.701s
user 0m9.450s
sys 0m3.410s
SBT、 Jekyll 和 grunt 中的默认监视机制使用诸如 inotify 之类的技术,如果它们在 Docker 容器中运行并且在 OS X 中对挂载的文件夹进行更改,则这些技术将无法工作。
我寻找解决方案(包括所有关于 SO 的解决方案) ,并尝试了其中的一些,但没有找到一个成功的解决方案:
有没有人找到一个真正有效的解决方案,允许您使用 Docker 和 OSX 高效地开发代码?
我终于找到了一个使用 Boot2Docker + rsync 的解决方案。我已经掌握了关于如何在 我自己的答案中设置这个功能的细节,以及一个名为 Docker-osx-dev的开源项目。