运行这个简单的管道:
pipeline {
agent { label 'docker-swarm' }
/* ------------------- */
stages {
stage("Build") {
agent {
docker {
reuseNode true
image 'maven:3.5.0-jdk-8'
}
}
steps {
sh 'mvn -version'
}
}
}
}产生此错误:
Queued: All nodes of label ‘docker-swarm’ are offline
~1分钟后,错误消息更改为:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
奇怪的是,当我在Manage Jenkins → Cloud中测试连接时,它可以毫无问题地连接:

有人想办法解决这个问题吗?
发布于 2017-11-16 04:48:20
Update 11/27/2017:屏幕截图显示了不正确的配置,它不使用群集,而是使用单个管理器节点。为了使用群集,我切换到端口3376,测试连接输出更改为Version = swarm/1.2.8, API Version = 1.22。我注意到了自己的错误,因为我从来没有看到构建运行在群中的其他节点上,而群管理器则不知所措。
在最初的问题中,尚不清楚使用的是哪些版本的Jenkins插件,也不清楚如何配置群集。
我成功地使用了:
在我编写这篇文章时,码头插件不支持较新的DockerS蜡模式。虽然非群体对接引擎应该能工作。
配置如下:

凭据提供连接到群集所需的证书。我记得我花了几次努力才把这件事做好。
下列管道起作用:
pipeline {
agent {
docker 'maven:3.5.0-jdk-8'
}
stages {
stage('Build') {
steps {
sh 'mvn -version'
}
}
}
}提供产出:
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T19:39:06Z)
Maven home: /usr/share/maven
Java version: 1.8.0_141, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "4.4.93-boot2docker", arch: "amd64", family: "unix"原问题中与管道的主要区别是:
agent。reuseNode。label。我没有亲自尝试过reuseNode或label。
https://stackoverflow.com/questions/46783819
复制相似问题