docker - Jenkins 管道DOCKER_HOST

标签 docker jenkins jenkins-pipeline

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

但是我发现使用此选项的docker有一些工作:

"Inject environment variables to the build process" -> "Properties Content"



并配置以下内容:
DOCKER_HOST=tcp://<ip>:<port>
DOCKER_CERT_PATH=/var/jenkins_home/certs

以我的理解,这等效于docker.sock并可用作插件,不是吗?

但是如何在(多)管道项目中使用它?
我尝试在我的Note中使用此Block:
environment {
    DOCKER_HOST         = 'tcp://<ip>:<port>'
    DOCKER_CERT_PATH    = '/var/jenkins_home/certs'
}

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

否则可以创建包括docker.sock的 Jenkins -奴隶吗?

最佳答案

But got same issue: "docker: not found"



这表明您的Jenkins从属服务器(运行管道脚本的一个服务器)没有docker命令行工具。这取决于您的分布,但是在我的情况下,我通过更改build-slave / pipeline-runner创建步骤来解决此问题,包括:
yum install -y docker-client

请注意,对于Cloudbees docker 插件(提供诸如docker.build()docker.image()之类的东西),您仍然需要它,因为它可以将这些不错的管道指令转换为Shell命令。

关于docker - Jenkins 管道DOCKER_HOST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47270663/

相关文章:

java - 如何使 maven-metadata.xml 具有与使用 maven 部署的 Artifact 相同的时间戳?

jenkins - 如何使用 Pipeline Job 的 CopyArtifact 插件传递从中复制工件的内部版本号?

jenkins - 如何在声明性 Jenkins 管道中添加 sidecar MySQL?

jenkins - 如何在Jenkins管道脚本中访问参数?

macos - 如何在 Mac 中安装 SSL/TLS 证书 CA 文件以实现安全 (HTTPS) 远程存储库 docker 登录

docker - dotnet 测试未在 docker 中使用标志 --no-build 运行

docker - docker 容器中的应用程序如何访问 Windows 中的数据库?

docker - docker-compose 中卷的权限

php - Jenkins CI - PHP 工具问题

jenkins - Jenkinsfile 参数化构建中的环境和参数之间有什么关系?