使用Docker的Mac和CentOS开发环境设置

我查了一下历史,但没有find一个好的答案。 所以我只是在这里问我的问题。 如果已经有一个很好的答案,请给我redirect。 谢谢。

问题是,我发现我公司的新雇员文件列出了安装开发环境的一堆软件。 通常需要1到2天的时间才能安装新的Mac。 我们想缩短这个过程。 我首先想到的是Docker。

我阅读了Docker的用户指南,并关注了如何使用Docker设置开发环境的博客,但如果Docker适用于我们的设置,还是有点困惑。 所以这里是要求的细节:

  1. 我们需要安装一堆软件(其中许多是自定义的二进制文件)。 现在,我们分发源代码,从源代码构build新的雇佣需求,安装它并设置环境以将二进制文件包含到path中。 我想知道是否Docker允许我们将自定义的二进制文件安装到它的容器中?

  2. 源代码不应该留在容器中。 源代码仍然使用git在本地机器中检出。 那么,我怎样才能依靠Docker容器的环境来构build我的软件呢? 我已经search了一点,你需要将你的文件夹装入容器,然后shell进入你的容器来构build? 这是如何工作的?

  3. 我们通常在mac中开发,Docker是否也支持mac容器,或者它只是允许你使用boot2Docker来运行Linux容器?

提前感谢您的帮助。

一些答案:)

首先,我认为使用Docker来标准化开发configuration(软件,定制软件包,环境variables,…)是一个非常好的主意。

  1. 使用Docker,您可以从主机获取自定义的二进制文件,这不是问题。 使用CMD命令,可以使用bash来安装它们并将它们添加到PATH中。 您也可以编写一个shell脚本来安装所有的东西,并在构build容器时启动这个脚本
  2. 您的代码将在主机上,您可以使用-v命令在docker映像中“挂载”主机文件夹。 例如:docker run -v / home / user / code:/ tmp / code your_image。 我将在下面详细介绍开发人员将如何使用您的Docker镜像。
  3. 是的,你必须使用Boot2Docker,它运作良好

一旦你的开发图像准备好了,你就必须在官方的Dockerregistry上发布它(或者在你的networking上托pipe一个本地registry)。

接下来,开发人员将启动以下Docker命令:docker run -rm -ti your_build_image / bin / bash

这将在您的Docker镜像中启动一个bashterminal,开发人员将能够编译代码。 例如:cd / tmp / code + mvn clean install

请看看这篇文章,以了解卷: http : //jam.sg/blog/mongodb-docker-part-2/

这个关于Dockerfile的: https ://www.digitalocean.com/community/tutorials/docker-explained-using-dockerfiles-to-automate-building-of-images

你也可以在github上find很多Dockerfiles(searchDockerfile)。

如果目标是加快Mac环境下的安装和使用所需的时间,那么可以看看Boxen 。

从“关于”部分可以看出:“Boxen是您的团队的IT机器人,它是一个危险的自我评估框架,可以自动化您的开发环境.GitHub,Inc.编写了Boxen的第一个版本(富有想象力地称为”The Setup“从第一天开始发货。“