使用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查询到。

相关文章
相关标签/搜索