共享数据容器中的开发和版本控制

时间:2014-11-28 20:32:57

标签: git ide docker linux-containers

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

  • app:在这里运行的OpenERP服务
  • db:PostgreSQL服务,没有别的
  • 数据:仅限卷目录,并充当“app”容器
  • 的数据提供者

它工作正常但是如果我想处理数据容器中的文件我不知道什么是使用正确IDE的最快和最好的方法,如果我已经完成,提交代码并实际保留它我把容器关了?

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

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

我发现了一些关于共享数据容器的文章和博客文章,以及它们有多棒。我无法找到另一个他们讨论实际开发和在这些数据容器上提交代码的地方。

思想?

1 个答案:

答案 0 :(得分:2)

您不需要具有共享X11服务的容器,也不需要使用git从容器中克隆代码存储库。

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

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

由于此文件夹将在主机中,因此它将在"数据"之后保留。容器被关闭。您还可以使用自己喜欢的IDE编辑代码。

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

ADD /home/user/webapp /opt/webapp

另外,请参阅Embed code in docker container or mount it as a volume?以简要讨论此方法。