如何与jenkinsdocker集装箱装卸docker卷?
我有jenkins运行在容器和项目源代码在github上。
我需要在容器中运行项目在jenkins相同的主机上,但不是作为docker在docker上,我想运行它们作为兄弟容器。
我的pipe道看起来像这样:
- 从github拉来源
- build立项目形象
- 运行项目容器
我现在正在使用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。