【发布时间】:2018-05-31 22:29:18
【问题描述】:
我们之前一直在Docker in Docker (DIND) 模式下运行 Jenkins,即在 Jenkins docker 容器中运行一个 docker 守护进程。但是由于许多问题(其中一些在上面的链接中进行了描述),我们决定放弃这种方法,而是让容器使用主机守护进程,只需在启动容器时将其挂载为卷:
-v /var/run/docker.sock:/var/run/docker.sock
但是现在我们在使用Docker Compose 安装相对路径时遇到了问题,该路径是在 container 内启动的,在 DIND 模式下运行良好。考虑这个 docker-compose 文件:
myimage:
build: .
environment:
LANG: C.UTF-8
working_dir: /code
volumes:
- ../../../:/code
- ~/.m2/repository:/root/.m2/repository
- ~/.gradle:/root/.gradle
以前这会从 container 装载所有文件夹,例如 ../../../ 文件夹,但现在它似乎尝试从 host 装载它们。当我检查主机上的目录结构时,似乎docker-compose 已经从容器中复制了目录结构,然后尝试挂载这个文件夹,使其为空。
所以我的问题是,当从主机使用 docker daemon 时,如何在 Docker Compose 中挂载相对路径?
【问题讨论】:
-
不明白为什么这被否决了,我很想知道,以便将来改进我的问题。
标签: linux docker jenkins docker-compose docker-in-docker