在Jenkins服务器上设置Docker

我正在将自由式Jenkins项目升级到pipe道。 我也想用Docker来打包我们的应用程序。 我已经安装了Cloudbees Docker构build和发布插件。 我也在Jenkins服务器上安装了Docker。 将Jenkins用户添加到docker组。 当我login到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 

我的Jenkinsfile如下所示:

  stage('Build Docker Container') { steps { script{ def app = docker.build "my-app:0.2" } } } 

过去,我曾经和jenkins和docker工作过,但当时我把jenkins用作容器,在这种情况下,不可能搬到集装箱化的jenkins。 任何帮助将不胜感激。

我设法通过将/var/run/dock.sock文件的权限更改为666来解决此问题。它的默认权限是660,我不明白为什么在docker组中的Jenkins用户无法访问此文件当执行pipe道作业,但它可以直接在命令行。 这是一个解决方法,它为我工作。 我希望这会帮助别人。