【发布时间】:2018-08-10 16:37:32
【问题描述】:
我注意到在将 Jenkins 与 Docker Pipeline 插件一起使用时。当我创建 Jenkins 文件以在 docker 容器中运行命令时,它总是创建 Jenkins 工作区目录的卷映射,映射到正在运行的容器中的相同路径。它还会创建一个具有相同路径的工作目录。
docker run -t -d -u 127:134 -w /var/lib/jenkins/workspace/DockerTest
-v /var/lib/jenkins/workspace/DockerTest:/var/lib/jenkins/workspace/DockerTest:rw,z
-v /var/lib/jenkins/workspace/DockerTest@tmp:/var/lib/jenkins/workspace/DockerTest@tmp:rw,z
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
jekyll/jekyll:builder cat
我试图通过在我的 Jenkinsfile 中为 Docker 提供参数来覆盖它,如下所示:
pipeline {
agent {
docker {
image 'jekyll/jekyll:builder'
args '-v $HOME:/srv/jekyll -w /srv/jekyll'
}
}
stages {
stage('Test') {
steps {
sh 'cd /srv/jekyll && ls -l'
}
}
}
}
似乎这只是将选项添加到 Docker 命令之前,并且工作目录和卷映射被默认设置覆盖:
docker run -t -d -u 127:134
-v $HOME:/srv/jekyll
-w /srv/jekyll
-w /var/lib/jenkins/workspace/DockerTest
-v /var/lib/jenkins/workspace/DockerTest:/var/lib/jenkins/workspace/DockerTest:rw,z
-v /var/lib/jenkins/workspace/DockerTest@tmp:/var/lib/jenkins/workspace/DockerTest@tmp:rw,z
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
-e ********
jekyll/jekyll:builder cat
有什么方法可以覆盖卷映射和工作目录?
【问题讨论】:
-
请发布运行的输出。
-
@julianlab 你找到解决方案了吗?我也面临同样的问题。
-
@Nagri 见下文stackoverflow.com/a/69469421/3673430
标签: docker jenkins jenkins-plugins jenkins-pipeline