前提: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查詢到。