使用docker-maven-plugin插件生成docker镜像


docker-maven-plugin插件官网地址:https://github.com/spotify/docker-maven-plugin

1、准备一台Linux服务,并安装docker。参考:

当前用于测试的docker版本为20.10.12

2、开启Docker的远程访问端口2375(注意将这个端口添加到防火墙白名单中

修改文件/usr/lib/systemd/system/docker.service,在[Service]->>ExecStart位置添加配置-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

vi /usr/lib/systemd/system/docker.service

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

执行如下命令重启docker服务

systemctl daemon-reload #重新加载配置
systemctl restart docker #重启docker服务

3、在maven项目中添加插件

<plugin>
    <groupId>com.spotifygroupId>
    <artifactId>docker-maven-pluginartifactId>
    <version>1.2.2version>
    <configuration>
        
        <baseImage>openjdk:8-jdk-alpinebaseImage>
        <maintainer>zhi.leaf@foxmail.commaintainer>
        <resources>
            <resource>
                <targetPath>/targetPath>
                <directory>${project.build.directory}directory>
                <include>${project.build.finalName}.jarinclude>
            resource>
        resources>
        <workdir>/workdir>
        <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]entryPoint>

        
        <dockerHost>http://192.168.159.130:2375dockerHost>
        <forceTags>trueforceTags>
        <imageName>zyz/${project.artifactId}imageName>
        
        <imageTags>
            <imageTag>${project.version}imageTag>
        imageTags>
    configuration>
plugin>

参数说明:

     baseImage:基础镜像

     forceTags:覆盖原来的镜像

     dockerHost:docker远程服务主机

4、运行mvn docker:build构建docker镜像

如果出现提示,说明镜像构建成功

登录Linux服务,可以查看到刚才构建的镜像。

6、将构建命令绑定到maven的生命周期中,这样我们就可以在maven打包的时候就可以构建镜像了

<plugin>
    <groupId>com.spotifygroupId>
    <artifactId>docker-maven-pluginartifactId>
    <version>1.2.2version>
    
    <executions>
        <execution>
            <id>build-imageid>
            <phase>packagephase>
            <goals>
                <goal>buildgoal>
            goals>
        execution>
    executions>
    <configuration>
    ...
    configuration>
plugin>