Jenkins中的Docker插件-覆盖工作区安装位置

时间:2018-09-03 13:08:18

标签: docker jenkins pipeline docker-container

在Jenkins管道中,当我使用withDockerContainer()docker.build(...).inside(...)时,jenkins工作区会自动安装到同一位置的容器中(例如,如果jenkins worksapce是/ tmp / jenkins_ws / job_name,则该路径的安装点将以相同的路径-v /tmp/jenkins_ws/job_name:/tmp/jenkins_ws/job_name -w /tmp/jenkins_ws/job_name添加到容器中。

我想覆盖工作空间安装在容器内的路径。我执行以下docker.build(...).inside("-v $WORKSPACE:/tmp/ws -w /tmp/ws"),但是当我查看控制台时,我看到该容器是按以下方式创建的(假定阶段中的当前工作空间是/ tmp / jenkins_ws / job_name @ 1 docker run -d -v /tmp/jenkins_ws/job_name@1:/tmp/ws -w /tmp/ws -e ******* -e ******* -v /tmp/jenkins_ws/job_name@1:/tmp/jenkins_ws/job_name@1 -w /tmp/jenkins_ws/job_name@1 IMAGE_NAME cat

请注意,该命令包含我在.inside()方法中传递的参数,然后插件再次添加了一些内容。

我希望能够将工作空间安装到容器中覆盖默认位置的某个位置。

对于那些对为什么需要执行此操作感兴趣的人,cmake仅在Makefile中生成绝对路径,因此我无法将构建树移至其他位置。我在这里所做的是,我在容器中的一个阶段中进行构建,并且希望并行测试多个阶段中的位,但是要确保容器中的工作空间路径始终相同。

0 个答案:

没有答案