如何安装从另一个容器启动的兄弟容器卷?

时间:2016-02-23 23:41:11

标签: docker

我在开发环境中使用docker:我有一个开发图像,我将源文件挂载为卷。

但是我想在我的持续集成服务器(gitlab ci)上做同样的事情,我仔细阅读了docker doc对HTMLTestRunner的引用,但是绑定安装docker的解决方案是unix插入docker客户端容器的插槽使得无法安装卷。

基本上我的问题是你如何解决这个问题(鉴于我在docker ci服务器/运行器中):我需要从容器(gitlab运行器)运行以下命令。

$ git clone ... my-sources && cd my-sources
$ docker run my-dev-image -v $PWD:$PWD -w $PWD gcc main.c

因为很明显,音量来自码头工人"原生"主持人而不是当前的容器。

2 个答案:

答案 0 :(得分:0)

确保您的CI服务器是以卷(例如docker run --name gitlabci -v /src gitlabci …)启动的,然后,当您启动其他容器时,请使用docker run --volumes-from gitlabci …启动它们。这样,/src也将在这些容器中可用,并且您在此目录中放置的任何内容(来自CI服务器)都将在其他容器中可用。

答案 1 :(得分:0)

我已经解决了这个问题,确保构建路径在主机和CI容器上是相同的。例如 - 用-v /home/jenkins:/home/jenkins启动容器。这样我们就可以从主机到CI容器安装卷。您可以更改为您喜欢的任何目录,只需确保将jenkins用户的主目录设置为该目录。

注意:我使用jenkins作为示例,但任何CI都将使用相同的原则