我在开发环境中使用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
因为很明显,音量来自码头工人"原生"主持人而不是当前的容器。
答案 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都将使用相同的原则