【问题标题】:jenkins pipeline DOCKER_HOST詹金斯管道 DOCKER_HOST
【发布时间】:2018-11-20 11:13:32
【问题描述】:

我需要在我的管道中运行一个 docker-container
我的问题是,Jenkins 容器内没有 没有 docker.sock 可用。而且实际上没有机会得到它。

但是我找到了一些使用带有这个选项的 docker 的工作:

“将环境变量注入构建过程”->“属性 内容”

以下配置:

DOCKER_HOST=tcp://<ip>:<port>
DOCKER_CERT_PATH=/var/jenkins_home/certs

在我的理解中,这相当于 docker.sock 并且可以作为插件使用,不是吗?

但是我如何在(多)管道项目中使用它? 我试过在我的笔记中使用这个块:

environment {
    DOCKER_HOST         = 'tcp://<ip>:<port>'
    DOCKER_CERT_PATH    = '/var/jenkins_home/certs'
}

但遇到了同样的问题:“docker: not found” 我可能有一个逻辑谬误。希望有人能帮忙。

否则是否可以创建一个包含 docker.sock 的 jenkins-slave?

【问题讨论】:

标签: docker jenkins jenkins-pipeline


【解决方案1】:

但遇到了同样的问题:“docker: not found”

这表明运行管道脚本的 Jenkins 从站没有docker 命令行工具。这取决于您的发行版,但在我的情况下,我通过更改我的 build-slave/pipeline-runner 创建步骤来修复它:

yum install -y docker-client

请注意,Cloudbees docker 插件(提供 docker.build()docker.image() 之类的东西)仍然需要它,因为它将这些漂亮的管道指令转换为 shell 命令。

【讨论】: