在带有jenkins的kubernetes实例上使用docker compose-装载空卷

在带有jenkins的kubernetes实例上使用docker compose-装载空卷,docker,jenkins,kubernetes,google-cloud-platform,docker-compose,Docker,Jenkins,Kubernetes,Google Cloud Platform,Docker Compose,我有一个使用谷歌解决方案的Jenkins实例设置。我没有改变Kubernetes吊舱的任何设置 当我触发一个新任务时,我能够成功地启动并运行所有东西,直到我的测试点 我的测试使用docker compose。首先,我确保在实例上安装docker(1.5-1+b1)和docker compose(1.8.0-2)(我知道我可以通过使用已经包含这些的图像来优化它,但我仍然只是在概念验证中) 当我运行docker compose up命令时,一切正常,服务启动其初始化脚本。但是,支架是空的。我已经验证

我有一个使用谷歌解决方案的Jenkins实例设置。我没有改变Kubernetes吊舱的任何设置

当我触发一个新任务时,我能够成功地启动并运行所有东西,直到我的测试点

我的测试使用docker compose。首先,我确保在实例上安装docker(1.5-1+b1)和docker compose(1.8.0-2)(我知道我可以通过使用已经包含这些的图像来优化它,但我仍然只是在概念验证中)

当我运行
docker compose up
命令时,一切正常,服务启动其初始化脚本。但是,支架是空的。我已经验证了Jenkins slave上存在文件,并且在运行docker compose时,挂载是在docker服务中创建的,但是它们是空的

一些信息:

为了绕过文件权限,我使用
/tmp
作为Jenkins工作区。我正在使用SCM(成功)拉取我的文件,在docker compose文件中,我指定了
version:'2'
和具有绝对路径的装载路径。服务失败的卷部分如下所示:

volumes:
 - /tmp/automation:/opt/automation
我将服务中运行的命令更改为
ls/opt/automation
,结果是一个空目录


我缺少什么?我只想在docker compose服务中装入一个目录。这可以在Windows、Ubuntu和Centos设备上完美运行。为什么使用Kubernetes实例无法工作

我找到了它失败的原因:

Docker容器中的Docker容器使用父主机的Docker守护进程,因此,“Docker in Docker”案例中装入的任何卷仍然从主机而不是从容器中引用

因此,从Jenkins容器装载的实际路径在主机中“不存在”。因此,在空的“docker in docker”容器中创建一个新目录。当目录装载到容器中的新Docker容器时,同样的情况也适用


因此,似乎不可能将某些东西从外部docker装入内部docker。必须找到另一个解决方案。

这可能是这个问题的副本: