我想不出一种使用Docker和Boot2Docker在OS X上设置开发环境的好方法。我遇到的问题是如何管理源代码,以便:
从理论上讲,通过将我的源代码安装为一个卷,应该很容易做到这一点:
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和OS X高效地开发代码?
我终于找到了一个使用Boot2Docker +
rsync似乎很有成效的解决方案。我已经在我自己的答案以及一个名为docker-osx-dev的开源项目中捕获了有关如何进行设置的详细信息。
我决定添加自己的答案以及到目前为止找到的最佳解决方案。 如果找到更好的选择,我将进行更新。
我发现在OS X上使用Docker设置生产性开发环境的最佳解决方案是: Boot2Docker + Rsync
。使用rsync,可直接在OSX上运行Docker容器中的构建时间!此外,该文件观察家代码并 没有
需要轮询(inotify
因为rsync使用普通文件夹的作品),所以热重装是 几乎 一样快。
有两种设置方法:自动安装和手动安装。
我已将使用Rsync设置Boot2Docker的所有步骤打包到一个名为docker -osx-
dev的开源项目中。代码有点粗糙,但是我已经成功使用了几周,可以轻松地在具有3种不同技术堆栈的3个项目之间切换。试试看,报告错误,并提交一些PR!另外,有关更多信息,请参阅我的博客文章“
在OS X上使用Docker进行高效的开发环境”。
brew install boot2docker
。boot2docker init && boot2docker start --vbox-share=disable
。boot2docker shellinit
并将其打印出的环境变量复制到您的~/.bash_profile
文件中。boot2docker ssh "tce-load -wi rsync"
。/foo/bar
要从OS X 同步文件夹,则需要/foo/bar
在Boot2Docker VM上创建:boot2docker ssh "mkdir -p /foo/bar && chown -R docker /foo/bar"
。rsync --archive --rsh="ssh -i $HOME/.ssh/id_boot2docker -o StrictHostKeyChecking=no" /foo/bar docker@dockerhost:/foo
。在rsync文档中检查您可能要启用的各种设置,例如在同步时--exclude .git
用于排除.git
文件夹。brew install fswatch
管道传递到rsync的fswatch()。docker run
启动Docker容器并使用该-v
标志挂载您要同步的文件夹:docker run -v /foo/bar:/src some-docker-image
。inotify
),并且构建应快速运行,因为所有文件都是“本地”到容器的。boot2docker ip
命令以查找其所使用的IP。用 Homebrew 来安装及更新 node.js 要在 Mac 上建立一个 node.js 的开发环境有很多方法. 你可以直接下载原始码自己编译, 或者是用套件管理系统来帮你解决这些琐碎的问题. 因为 node.js 还是一个很年轻的专案, 常常会有版本的更新. 手动安装及更新实在是非常的累人. 若是使用 Homebrew 来帮你处理这些问题可以让你把时间花在写程式而不是设定环境上面. 如果你是
使用 Online Editor 对 Weex 尝鲜是一个不错的选择,但如果你想更专业的开发 Weex,本节会教你如何搭建本地开发环境进行 Weex 开发。 安装依赖 Weex 官方提供了weex-cli 的脚手架工具来辅助开发和调试。 首先,你需要 Node.js 和 Weex CLI。 安装 Node.js 方式多种多样,最简单的方式是在 Node.js 官网 下载可执行程序直接安装即可。 更
如果你已经有了 Maven 的开发环境,那你可以跳过本节。 本书例子需要 JDK 和 Apache Maven,都可以免费下载到。 1.安装配置 JDK 建议用 JDK 7+ 2.下载 IDE JAVA 的 IDE 很多,主流的有 Eclipse: http://www.eclipse.org NetBeans: http://www.netbeans.org Intellij Idea Comm
在本章中,我们将演示如何将Firebase添加到现有的应用程序,要安装Firebase,首先需要NodeJS。 如果您还没有安装好Firebase,请从下表中的链接中下载安装。 NodeJS和NPM安装 - http://www.yiibai.com/nodejs/nodejs_environment_setup.html 第1步 - 创建Firebase帐户 可以在这里创建一个Firebase帐
Swift 4为学习目的提供了一个Playground平台,在本节中我们也将设置相同的平台。 需要xCode软件才能在Playground中启动Swift 4编码。 当熟悉了Swift 4的概念,就可以使用xCode IDE进行iSO/OS x应用程序开发。 首先,假设您已在Apple Developer网站上拥有一个帐户。 登录后,请转到以下链接 - Apple Developers下载 它将列
主要内容:了解MATLAB环境设置MATLAB开发环境是比较简单的,只需要从 http://www.mathworks.com/downloads/web_downloads/ 下载安装程序。申请成功后的页面 - MathWorks还提供许可产品,试用版和学生版本。需要登录该站点,并等待一点他们的批准。 注: 由于这里只是学习和研究MATLAB,所以注册一个账号然后申请一个免费试用版。 下载安装程序后,通过以下几个步骤来安装软