【发布时间】:2026-02-09 06:45:01
【问题描述】:
我正在尝试使用 Jenkins 和“docker in the docker”容器构建一个分支,以从 src 构建一个容器。
我在这里定义 Docker 云实例:
是否应该提供一个额外的选项卡以使作业能够使用上面的 Docker 云实例设置?
作业是多分支管道:
但是当我尝试配置使用上面配置的 docker 云实例的作业时,使用 docker 构建的选项不可用:
构建日志包含:
time="2021-04-04T14:27:16Z" level=error msg="failed to dial gRPC: 无法连接到 Docker 守护进程。 'docker daemon' 是否正在运行 这个主机?:拨打 unix /var/run/docker.sock:连接:没有这样的文件或 连接期间的目录“错误:发布 http://%2Fvar%2Frun%2Fdocker.sock/v1.40/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory= 0&memswap=0&networkmode=default&rm=1&session=vgpahcarinxfh05klhxyk02gg&shmsize=0&t=ron%2Fml-services&target=&ulimits=null&version=1: 上下文取消 [Pipeline] } [Pipeline] // 阶段 [Pipeline] } [Pipeline] // 节点 [Pipeline] 管道结束 [Bitbucket] 通知 提交构建结果 [Bitbucket] 构建结果通知错误:脚本 返回退出代码 1 完成:失败
这表明构建正在与 Jenkins 相同的主机上搜索 Docker,但我正在尝试在不同的主机上使用 Docker 进行构建?
我是否使用 Jenkins 正确配置了 Docker?
我的Jenkinsfile 包含:
node {
def app
stage('Clone repository') {
checkout scm
}
stage('Build image') {
app = docker.build("ron/services")
}
stage('Push image') {
docker.withRegistry('https://registry.hub.docker.com', 'git') {
app.push("${env.BUILD_NUMBER}")
app.push("latest")
}
}
}
更新:
单击Expose DOCKER_HOST 处的复选标记,重建包含错误:
+ docker build -t ron/services .
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
[Bitbucket] Notifying commit build result
[Bitbucket] Build result notified
ERROR: script returned exit code 1
Finished: FAILURE
【问题讨论】:
标签: docker jenkins kubernetes jenkins-pipeline digital-ocean