我想使用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命令并没有什么奇怪的。