Vagrant和/或Docker工作stream程与完整的OS X文件系统集成,实现无缝的本地感受?

最近我一直在跟vagrantdocker 。 这些都是非常有趣的工具,但我还没有能够说服自己,这是我的OS X机器上的方式。 作为一个旧的Unix的帽子,我不得不说,我喜欢有一个整合和沙箱环境的发展目的。

我已经看到了很多的喋喋不休,许多朋友一直在用vim编辑vagrant 。 我并不是那种方法的粉丝,可能更愿意使用虚拟机供应商的共享机制,更可能的是使用NFS。

就个人而言,我希望能够直接在TextMate,SublimeText,Emacs(在OS X)上进行编辑,甚至可以使用RubyMine及其各种IDEfunction等。

有没有什么办法可以真正让工作stream下来,这样的环境基本上就像在本地环境中工作,而不必拉大量的额外的背景string,使事情工作?

我认为几个摆放得很好的脚本可能会有很长的路要走,但是我还没有find任何可靠的答案来真正实现这个无缝的环境。

实际上我用的是使用boot2docker ,它可以很容易地安装一个轻量级的虚拟机(带有VirtualBox),它将托pipe你的docker deamon和图像。 运行docker命令所需的唯一东西是在打开新的terminal时运行$(boot2docker shellinit)。

如果您还需要将文件放在OS X文件夹中,并将其与正在运行的Docker镜像共享,则需要进行一些额外的设置,但一旦完成,就不必再次执行此操作。 看看这里有一个很好的演练如何做到这一点。 简而言之,步骤是:

  • 获取一个特殊的boot2docker映像,允许您使用VirtualBox的共享文件夹
  • configurationVirtualBox共享一个文件夹:

    VBoxManage sharedfolder add boot2docker-vm -name home -hostpath /Users

    这将与托pipedocker的boot2docker映像共享您的/ Users文件夹。

  • 从您的Mac共享您需要的文件夹与泊坞窗图像中的文件夹,如:

    docker run -it -v /Users/me/dev/my-project:/root/src:rw ubuntu /bin/bash

我还没有find克服的一个小麻烦,就是你不再通过本地主机来访问你的软件,因为它实际上是在boot2docker实例上运行的。 您必须运行boot2docker ip并访问该ip。

希望有所帮助!