我正在努力将我们的自由式Jenkins项目升级到管道 . 我还想使用Docker打包我们的应用程序 . 我已经安装了cloudbees Docker构建和发布插件 . 我也在Jenkins服务器上安装了Docker . 将Jenkins用户添加到docker组 . 当我登录到Jenkins服务器并转到工作区时,我可以运行docker命令而没有任何错误,并且构建了映像但是在Jenkinsfile中我收到以下错误 .
[eline_jenkins-pipeline-test-
PBD3XJTE26LKZXM5M45IPRS3DXQANE4R2Q6GCDSZAPOHBNXKQDQQ] Running shell
script
+ docker build -t test-image .
Got permission denied while trying to connect to the Docker daemon
socket at unix:///var/run/docker.sock: Post
http://%2Fvar%2Frun%2Fdocker.sock/v1.32/build?
dial unix /var/run/docker.sock: connect: permission denied
我的Jenkins文件如下:
stage('Build Docker Container') {
steps {
script{
def app = docker.build "my-app:0.2"
}
}
}
在过去,我曾与Jenkins和码头工作过,但当时我使用Jenkins作为容器,在这种情况下,不可能转移到容器化的Jenkins . 任何帮助将受到高度赞赏 .
1 回答
我设法通过将/var/run/dock.sock文件的权限更改为666来解决此问题 . 它的默认权限是660,我不明白为什么Docker组中的Jenkins用户无法访问此文件在执行管道作业时,它可以直接在命令行上执行 . 这是一种解决方法,它对我有用 . 我希望这也能帮助别人 .