【问题标题】:Developing and version control in a shared data-container共享数据容器中的开发和版本控制
【发布时间】:2014-11-28 20:32:56
【问题描述】:

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

  • app:OpenERP 服务在这里运行
  • db:PostgreSQL 服务,仅此而已
  • 数据:只是一个卷目录,用作“应用”容器的数据提供者

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

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

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

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

想法?

【问题讨论】:

    标签: git ide docker linux-containers


    【解决方案1】:

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

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

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

    由于这个文件夹会在宿主机中,所以它会在“data”容器关闭后被持久化。您还可以使用自己喜欢的 IDE 来编辑代码。

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

    ADD /home/user/webapp /opt/webapp
    

    另外,请参阅Embed code in docker container or mount it as a volume? 了解有关此方法的简短讨论。

    【讨论】:

    • 最初我是这样做的。问题是文件夹必须具有一定的权限(由用户 openerp 拥有,该用户是在数据和应用程序容器中创建的)。在这种情况下,最好的方法是什么?
    • 我不认为有一个简单的解决方案。请参阅stackoverflow.com/questions/23544282/… 进行讨论。
    猜你喜欢
    • 1970-01-01
    • 2011-01-28
    • 2019-04-28
    • 1970-01-01
    • 2013-02-27
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多