我正在使用使用Docker的当前Jenkins Maven项目教程:
https://jenkins.io/doc/tutorials/build-a-java-app-with-maven/
在构建阶段,我一直收到这个错误:
简单-java-maven-应用程序运行shell脚本 sh:无法创建/var/jenkins_home/workspace/simple-java-maven-app@tmp/durable-bae402a9/jenkins-log.txt:不存在的目录 sh:无法创建/var/jenkins_home/workspace/simple-java-maven-app@tmp/durable-bae402a9/jenkins-result.txt:不存在的目录
我尝试过在列出的目录上使用chmod -R 777、chown -R nobody和chown -R 1000设置限制最少的权限,但似乎没有什么有效。
这种情况发生在Docker 17.12.0-ce版本上的jenkins映像,在Windows10Professional上构建c97c6d6。
由于在Jenkins站点上的Maven项目教程正在发生这种情况,我想知道还有多少人遇到了这个问题。
发布于 2018-01-23 22:12:42
我在MacOSX上也有同样的问题。经过几个小时的研究,我终于找到了解决办法。
要解决这个问题,重要的是要了解Jenkins在容器中,并且当容器中的码头代理与您的码头引擎交谈时,它给出了在容器内部挂载卷匹配的路径。但你的对接引擎在外面。因此,为了使路径在内部正确工作,容器必须匹配宿主中容器外部的相同路径。
要允许正确工作,您需要更改2件事。
为了我自己的习惯,我用了这个
docker run -d \
--env "JENKINS_HOME=$HOME/Library/Jenkins" \
--restart always \
--name jenkins \
-u root \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $HOME/Library/Jenkins:$HOME/Library/Jenkins \
-v "$HOME":/home \
jenkinsci/blueocean在Jenkinsfile里
更换代理部件
agent {
docker {
image 'maven:3-alpine'
args '-v /root/.m2:/root/.m2'
}通过
agent {
docker {
image 'maven:3-alpine'
args '-v <host_home_path>/.m2:/root/.m2'
}发布于 2018-01-31 23:21:11
这一问题很可能是由于最近码头行为的变化造成的,詹金斯的Docker管道插件已经不再正确地处理这个问题了。
在不涉及太多细节的情况下,这个问题导致Jenkins无法再识别它正在运行的容器,这将导致您在这些教程中遇到的错误(上面)。
一个新版本(1.15)的码头管道插件昨天发布(https://plugins.jenkins.io/docker-workflow)。
如果您在Jenkins (在Docker中)实例上升级了这个插件(通过Manage > Manage ),您会发现这些教程应该重新开始工作(如文档所示)。
发布于 2018-01-21 08:12:21
错误消息意味着没有创建目录durable-bae402a9。
回顾本教程,找到应该创建该目录的步骤,并对其进行任何必要的更改以确保其成功。
https://stackoverflow.com/questions/48361135
复制相似问题