背景描述:
公司项目采用SpringCloud微服务架构,最近准备利用jenkins构建docker镜像,然后将镜像上传到harbor仓库,可是在用jenkins构建docker镜像时始终出现问题:
Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.6:build (default-cli) on project jzhc-gateway: Could not build image: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: java.io.IOException: Connection refused
一直以为是jenkins没有权限,所以在网上找了很多解决jenkins没有权限的办法,但是都没有解决。最后试着用shell语句构建镜像,发现了问题:
原来是jenkins无法找到docker命令,于是找到最终的解决办法,在运行jenkins时,一定要挂载docker命令。
-v $(which docker):/usr/bin/docker
首先,停掉Jenkins
sudo docker stop jenkins
接着,删除jenkins
sudo docker rm jenkins
最后,重新用docker运行Jenkins
sudo docker run -d --name jenkins -u root -p 8080:8080 -p 50000:50000 --privileged=true -v /usr/local/jenkins/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/local/maven:/usr/local/maven jenkins/jenkins:2.316-jdk8
重新进行构建,问题解决