使用Maven打包Docker鏡像-Jenkins版

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

相關文章
相關標籤/搜索