在jenkins PipeLine运行下面脚本时,出了下面的错误


pipeline { agent any environment { DOCKER_IMAGE = "spring-petclinic" // 替换为你的镜像仓库地址 DOCKER_TAG = "latest" // 使用构建编号作为标签 } stages { stage('Git Clone') { steps { git( url: 'http://xxxx:3001/gitea_admin/spring-petclinic.git', credentialsId: '9012b775-e018-4115-ae34-0fbadd1e88d4', branch: 'main', ) sh 'pwd' sh 'ls -la' } } stage('Build') { steps { sh './mvnw package -DskipTests -Dcheckstyle.skip=true -Dspotbugs.skip=true -Dpmd.skip=true' } } stage('Docker Build') { steps { sh "docker build -t ${DOCKER_IMAGE}:${DOCKER_TAG} ." } } } }
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
原因:
- jenkins当前用户和用户组权限不足导致
解决方法
- 把jenkins加入用户组
# usermod -aG docker jenkins
- 设置sock文件权限
# sudo chmod 666 /var/run/docker.sock
- 重启docker和jenkins
# systemctl restart docker # systemctl restart jenkins
重新执行Pipeline,是可以正常执行了。

docker images 也可以看见build出的镜像了
