我们之前一直在 Docker (DIND) 模式下在 Docker 中运行 Jenkins,即在 Jenkins docker 容器内运行 docker 守护进程。但是由于许多问题(其中一些在上面的链接中描述),我们决定放弃这种方法,而是让容器使用主机守护进程,只需在启动容器时将其挂载为卷:
-v /var/run/docker.sock:/var/run/docker.sock
但是现在我们在使用在 DIND 模式下运行良好的容器内启动的Docker Compose安装相对路径时遇到了问题。考虑这个 docker-compose 文件:
myimage:
build: .
environment:
LANG: C.UTF-8
working_dir: /code
volumes:
- ../../../:/code
- ~/.m2/repository:/root/.m2/repository
- ~/.gradle:/root/.gradle
../../../
以前这从容器中安装了所有文件夹,例如文件夹,但现在它似乎尝试从主机安装它们。当我检查主机上的目录结构时,似乎docker-compose
已经从容器中复制了目录结构,然后尝试挂载该文件夹,使其为空。
所以我的问题是,当从主机使用 docker 守护进程时,如何在 Docker Compose 中挂载相对路径?