在共享数据容器中进行开发和版本控制

我正在开发一个OpenERP项目,在这里我正在开发一些自定义模块。 我有一个3容器设置:

  • 应用程序:在这里运行的OpenERP服务
  • db:PostgreSQL服务,没有别的
  • 数据:只有卷目录,并作为“应用程序”容器的数据提供者

它工作正常,但如果我想在数据容器中的文件工作,我不知道什么是最快和最好的方式来使用适当的IDE,如果我完成,提交代码,实际上保持它后,我closures了容器倒了?

一种方法是创build另一个共享X11服务的容器,并使用基于GUI的IDE或类似的东西,但这对我来说似乎有点矫枉过正。

关于版本控制:我有一个远程的git仓库,可能适合存储更改,但只要从Dockerfile构build镜像并将其旋转起来,就无法克隆仓库,因为它只允许SSH连接和容器没有它。

我发现了几篇关于共享数据容器的文章和博客文章,以及它们有多棒。 在他们讨论这些数据公司的实际开发和代码的问题上,我还没有find另一种方法。

思考?

您不需要共享X11服务的容器,也不需要使用git从容器中克隆代码回购。

对于开发,您可以在“数据”容器中使用卷来挂载代码文件夹,然后您的“应用程序”容器将会看到这些文件(请参阅https://docs.docker.com/userguide/dockervolumes/ ):

sudo docker run -d -P --name data -v /src/webapp:/opt/webapp my/container 

由于此文件夹将位于主机中,所以在“数据”容器closures后,它将被保留。 你也可以使用你最喜欢的IDE编辑代码。

对于生产,您可以将代码文件夹添加到容器图像本身,以便您可以直接部署容器。 在你的Dockerfile中:

 ADD /home/user/webapp /opt/webapp 

另外,请参阅在Docker容器中embedded代码或将其作为卷装入? 对这种方法进行简短的讨论。