如何与jenkinsdocker集装箱装卸docker卷?

我有jenkins运行在容器和项目源代码在github上。

我需要在容器中运行项目在jenkins相同的主机上,但不是作为docker在docker上,我想运行它们作为兄弟容器。

我的pipe道看起来像这样:

  1. 从github拉来源
  2. build立项目形象
  3. 运行项目容器

我现在正在使用jenkins容器主机的docker socket:

/var/run/docker.sock:/var/run/docker.sock 

jenkins容器使用源代码从/ var / jenkins_home / workspace / BRANCH_NAME将项目容器安装到容器时遇到问题:

 volumes: - ./servers/identity/app:/srv/app 

我得到项目容器中的空文件夹“/ srv / app”

我最好的猜测是docker试图从主机而不是从jenkins容器挂载它。

所以问题是:我怎样才能明确地设置我从哪个容器装载容器?

尝试:

 docker run -d --volumes-from <ContainerID> <YourImage> 

容器ID是您想要从中获取mont数据的容器的ID。

您还可以通过以下方式创build音量:

 docker volume create <volname> 

并将其分配给两个容器

 volumes: - <volname>:/srv/app 

在Host和Jenkins之间共享袜子是我的问题,因为“/ var / jenkins_home”最有可能是Jenkins容器的容量。

我的解决scheme是将docker安装在systemd容器中而不共享袜子。

 docker run -d --name jenkins \ --restart=unless-stopped \ --privileged \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v jenkins-vol:/var/lib/jenkins \ --tmpfs /run \ --tmpfs /run/lock \ ubuntu:16.04 /sbin/init 

然后在其上安装Jenkins,Docker和Docker Compose。