前提:Jenkins服务器上安装好Docker,建立Jenkins任务,配置好代码来源,和Build配置:java
pom.xml中添加docker-maven-plugin:docker
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerHost>https://192.168.99.100:2376</dockerHost> <dockerCertPath>C:\Users\Administrator\.docker\machine\machines\default</dockerCertPath> <!--<dockerDirectory>src/main/docker</dockerDirectory>--> <baseImage>java:8</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.war"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.war</include> </resource> </resources> </configuration> </plugin>
与在本地打包相比,主要增长了dockerHost和dockerCertPath两个配置属性。服务器
若是没有配置这两个属性,构建失败,报以下错误:maven
maven的docker插件在构建过程当中没有找到docker虚拟机,由于构建结果产生的image必须基于一台docker虚拟机。为了解决这个错误,作了以下尝试:ui
1)更新docker-maven-plugin的版本到0.4.13,依然报该错。.net
<version>0.4.13</version>
2)安装Jenkins的Docker插件和docker-build-step插件,依然报该错。插件
详细过程code
3)根据https://stackoverflow.com/questions/35549854/maven-package-dockerbuild-connection-refusedxml
在配置中添加dockerHost和dockerCertPath,这两个属性值可从Jenkins服务器上的Docker获取blog
问题解决!构建产生的镜像能够在Jenkins服务器的Docker上经过docker image ls查询到。