如何在Jenkins Pipeline上构建Docker镜像,而不更改底层Jenkins VM的权限



我想使用Jenkins Pipeline来构建、推送和部署我的Docker映像。

我得到这个:

Got permission denied while trying to connect to the 
Docker daemon socket at unix:///var/run/docker.sock

StackOverflow上的其他问题建议sudo usermod -a -G docker jenkins,然后重新启动Jenkins,但我无法访问运行Jenkins的机器——无论如何,围绕Docker构建的Jenkins Pipeline无法运行基本的Docker命令,这似乎很奇怪。

如何构建Docker?

pipeline {
agent  any
stages {    
stage('deploy') {
agent {
docker {
image 'google/cloud-sdk:latest'
args '-v /var/run/docker.sock:/var/run/docker.sock'
}
}
steps {    
script {    
docker.build  "gcr.io/myporject/mydockerimage:1"
} 
}
}
}
}

显示的管道定义试图在docker容器(google/cloud-sdk:latest(内执行docker构建。相反,如果主机上的jenkins用户有权在主机上执行docker命令,则应该执行以下操作。

pipeline {
agent  any
stages {
stage('deploy') {
steps {    
script {    
docker.build  "gcr.io/myporject/mydockerimage:1"
} 
}
}
}
}

当机器上单独安装和配置docker命令时,jenkins在没有适当权限的情况下无法执行docker命令并没有什么奇怪的。

相关内容

  • 没有找到相关文章

最新更新