docker工人集中开发团队

我想用我的开发团队(4位PHP开发人员)使用docker构build一个“集中式”开发环境,

  • 我有一个大的Linux服务器(大量的RAM,磁盘,CPU)运行的容器。
  • 所有的开发人员都在这个linux服务器(一个主目录)上有一个帐户,他们把(git clone)这个项目的源代码放在这里。 在本地(在台式机上),他们可以通过networking共享访问他们的主目录。
  • 我希望所有的开发人员能够在同一个项目上同时工作,但是在不同的容器中查看他们的代码编辑结果(或者使用链接容器的项目的容器集合)

Docker PHP开发环境本身不是问题。 我已经试过这样的成功: http : //geoffrey.io/a-php-development-environment-with-docker.html

我可以在每个项目源代码的根目录下使用fig,在每个项目源代码的根目录下都有一个fig.yml,这样每个开发人员都可以做一个fig up来启动给定项目的一组容器。 我甚至可以为每个帐户使用不同的FIG_PROJECT_NAME环境variables,所以我想2个开发人员可以FIG_PROJECT_NAME同一个项目,他们将不会有容器名称冲突

是否有意义 ?

但之后,我真的不知道如何dynamic地访问正在运行的容器:运行时,通常会有一个容器中的Web服务器映射到主机中的随机端口。 我怎样才能设置一种“dynamicDNS”指向正在运行的容器,可以说,通过一个nginx反向代理(虚拟主机的创build和销毁也必须是dynamic的)呢?

总结一下,我想要的工作stream程是:

  • 开发人员ssh到开发环境(大型Linux服务器)。
  • 从他的家目录他进入项目目录,并做一个fig up
  • 在nginx反向代理中创build一个虚拟主机,指向正在运行的容器,并添加一个DNS条目(或/ etc / hosts条目),这是以前生成的虚拟主机的server_name。
  • 源代码从主机目录( -v host/dir:container/dir被装载到容器中,因此开发人员可以在容器运行时编辑任何文件
  • 结果可以通过访问虚拟主机来查看,例如: randomly-generated-id.dev.example.org
  • 当更改没问题时,开发者可以做一个git提交/推送
  • 然后dev做一个fig stop ,然后删除nginx反向代理对应的虚拟主机,也删除dynamicDNS条目。

那么,如何做这样的设置? 我提到像无花果的工具,但如果你有任何其他的build议…但请记住,我想保持一个轻量级的工作stream程(毕竟我们是一个小团队:))

谢谢你的帮助。

是否有意义 ?

是的,这个设置是有道理的

我会build议看看这些项目之一:

它们都是为了在容器启动时创buildDNS条目而devise的。 然后只需将你的DNS服务器指向它,每次有人启动一个环境时,你都应该得到一个不错的域名(我不认为你需要一个nginx代理)。 但是你也可能对这种方法感兴趣: http : //jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/