一尘不染

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

jenkins

在Kubernetes解决方案使用Google
Jenkins进行了Jenkins实例设置。我尚未更改Kubernetes Pod的任何设置。

当我触发一项新工作时,我可以成功地启动并运行所有内容,直到进行测试为止。

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

当我运行docker-compose up命令时,一切正常,服务启动其初始化脚本。但是, 安装座是空的
。我已验证文件在Jenkins从站上存在,并且在我运行docker-compose时在docker服务内部创建了挂载,但是 它们为空

一些信息:

为了避开文件权限,我正在使用/tmpJenkinsWorkspace。我正在使用SCM成功提取我的文件,并且在我指定的docker-compose文件中version: '2'以及带有绝对路径的安装路径。服务失败的卷部分如下所示:

volumes:
 - /tmp/automation:/opt/automation

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

我想念什么? 我只想将目录挂载到docker-compose服务中
。它可以在Windows,Ubuntu和Centos设备上完美运行。为什么不能使用Kubernetes实例工作?


阅读 269

收藏
2020-07-25

共1个答案

一尘不染

我发现这里失败的原因:

Docker容器中的Docker容器使用父HOST的Docker守护程序,因此,在“ docker-in-
docker”案例中安装的任何卷仍从HOST而非容器中引用。

因此,在HOST中从Jenkins容器安装的实际路径“不存在”。因此,将在空的“ docker-in-
docker”容器中创建一个新目录。将目录挂载到Container内的新Docker容器时,同样适用。

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

2020-07-25