SpringBoot 项目 pom.xml 中 设置 Docker Maven 插件

在Spring Boot项目中,使用Docker Maven插件(通常是docker-maven-plugin或者fabric8io/docker-maven-plugin)来自动化构建Docker镜像并将其推送到远程仓库。

这里分别介绍这两种插件的基本配置,并说明如何设置远程仓库推送。

1、使用 docker-maven-plugin

docker-maven-plugin 插件实际上是由 spotify 提供的,而 spotify 官方已经停止了对这个插件的维护。

xml 复制代码
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>你的版本号</version>
    <configuration>
        <imageName>你的远程仓库地址/${project.artifactId}:${project.version}</imageName>
        <dockerDirectory>src/main/docker</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
    <executions>
        <execution>
            <id>build-image</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
        <execution>
            <id>push-image</id>
            <phase>deploy</phase>
            <goals>
                <goal>push</goal>
            </goals>
            <configuration>
                <serverId>docker-hub</serverId> <!-- 对应settings.xml中的server配置 -->
            </configuration>
        </execution>
    </executions>
</plugin>

注意serverId<configuration> 标签内用于指定Maven的 settings.xml 文件中配置的服务器认证信息,以便在推送镜像时进行认证。

2、使用 fabric8io/docker-maven-plugin

fabric8io/docker-maven-plugin 是另一个流行的Docker Maven插件,提供了更多的功能和更好的维护。

xml 复制代码
<plugin>
    <groupId>io.fabric8</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>你的版本号</version>
    <configuration>
        <images>
            <image>
                <name>你的远程仓库地址/${project.artifactId}:${project.version}</name>
                <build>
                    <contextDir>${project.basedir}/src/main/docker</contextDir>
                    <dockerFile>Dockerfile</dockerFile>
                    <assembly>
                        <descriptorRef>artifact</descriptorRef>
                    </assembly>
                </build>
            </image>
        </images>
        <pushImages>
            <pushImage>你的远程仓库地址/${project.artifactId}:${project.version}</pushImage>
        </pushImages>
    </configuration>
    <executions>
        <execution>
            <id>docker:build</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
        <execution>
            <id>docker:push</id>
            <phase>deploy</phase>
            <goals>
                <goal>push</goal>
            </goals>
            <configuration>
                <serverId>docker-hub</serverId> <!-- 同样需要配置在settings.xml -->
            </configuration>
        </execution>
    </executions>
</plugin>

3、配置 Maven 的 settings.xml

无论使用哪个插件,都需要在Maven的 settings.xml 文件中配置你的远程仓库认证信息。这个文件通常位于 ~/.m2/settings.xml

xml 复制代码
<servers>
    <server>
        <id>docker-hub</id>
        <username>你的用户名</username>
        <password>你的密码</password>
    </server>
</servers>
  • pom.xml 中配置插件,包括镜像名称、构建目录、执行阶段等。
  • 在Maven的 settings.xml 中配置远程仓库的认证信息。
  • 使用Maven命令(如mvn clean package docker)。
相关推荐
卡布奇诺-海晨15 分钟前
JVM之Arthas的dashboard命令以及CPU飙高场景
java·spring boot
Hellc00733 分钟前
使用 Docker 部署 RabbitMQ 并实现数据持久化
docker·rabbitmq·ruby
katasea1 小时前
关于Springboot 应配置外移和Maven个性化打包一些做法
spring boot·maven
梦游钓鱼1 小时前
在window终端创建docker容器的问题
运维·docker·容器
Huooya1 小时前
springboot的外部配置加载顺序
spring boot·面试·架构
钢板兽2 小时前
Java后端高频面经——Spring、SpringBoot、MyBatis
java·开发语言·spring boot·spring·面试·mybatis
钢板兽2 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
用户53866168248222 小时前
SpringBoot 业务中 通过嵌套异步的方式 提高业务表数据同步效率
java·spring boot
MickeyCV2 小时前
《苍穹外卖》SpringBoot后端开发项目重点知识整理(DAY1 to DAY3)
java·spring boot·后端·苍穹外卖
学编程的小程4 小时前
Spring Boot应用开发:从零到生产级实战指南
spring boot