我正在尝试在Docker中运行Jenkins并使用Jenkins Docker Pipeline。我正在使用17.12.0-ce-mac45(21669)这是Docker的边缘版本。我按照Jenkins网站上的教程运行:
docker run \
--rm \
-u root \
-p 8080:8080 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME":/home \
jenkinsci/blueocean
一切都启动好但是当我尝试运行一个简单的管道,如
pipeline {
agent {
docker { image 'node:7-alpine' }
}
stages {
stage('Test') {
steps {
sh 'node --version'
}
}
}
}
我收到错误说
sh: can't create /var/jenkins_home/workspace@tmp/durable-070664e3/jenkins-log.txt: nonexistent directory
sh: can't create /var/jenkins_home/workspace@tmp/durable-070664e3/jenkins-result.txt: nonexistent directory
在此之前出现了一些其他内容:
Jenkins does not seem to be running inside a container
其他人遇到这个问题?当我使用docker-machine时,它可以工作,但不是在Docker for Mac edge上。我不确定它是否适用于Docker for Mac stable。我唯一的猜测是,出现的错误说Jenkins似乎并不认为它在容器中是问题的根源。我在this line的Github存储库中注意到它看起来像“/ docker /”,这就是Jenkins认为它在容器中的原因。在docker-machine中,它看起来完全一样,但在Docker for Mac Edge上,它看起来像/docker-ce/docker/
答案 0 :(得分:0)
我在macOS上遇到与Docker version 17.12.0-ce, build c97c6d6
相同的问题,有人已将其报告为docker-workflow-plugin https://issues.jenkins-ci.org/browse/JENKINS-49005中的错误,因为现在我使用的是docker-machine解决方法,直到docker-workflow-plugin或Docker的更新更改cgroup命名为止。