在Docker for Mac上使用容器化Jenkins内的Docker管道

时间:2018-01-15 06:48:15

标签: macos docker jenkins

我正在尝试在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/

1 个答案:

答案 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命名为止。