使用Maven打包Docker镜像-Jenkins版

好久不见. 提交于 2019-12-05 10:46:35

前提:Jenkins服务器上安装好Docker,创建Jenkins任务,配置好代码来源,和Build配置:

pom.xml中添加docker-maven-plugin:

<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的docker插件在构建过程中没有找到docker虚拟机,因为构建结果产生的image必须基于一台docker虚拟机。为了解决这个错误,做了如下尝试:

1)更新docker-maven-plugin的版本到0.4.13,依然报该错。

<version>0.4.13</version>

2)安装Jenkins的Docker插件和docker-build-step插件,依然报该错。

详细过程

3)根据https://stackoverflow.com/questions/35549854/maven-package-dockerbuild-connection-refused

在配置中添加dockerHost和dockerCertPath,这两个属性值可从Jenkins服务器上的Docker获取

问题解决!构建产生的镜像可以在Jenkins服务器的Docker上通过docker image ls查询到。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!