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)。
相关推荐
tonngw36 分钟前
【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
macos·docker·容器·开源·github·docker desktop·orbstack
debug 小菜鸟3 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
SpikeKing3 小时前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm
面朝大海,春不暖,花不开4 小时前
自定义Spring Boot Starter的全面指南
java·spring boot·后端
HelloWord~4 小时前
SpringSecurity+vue通用权限系统
vue.js·spring boot
斯普信云原生组5 小时前
Docker构建自定义的镜像
java·spring cloud·docker
wangjinjin1805 小时前
使用 IntelliJ IDEA 安装通义灵码(TONGYI Lingma)插件,进行后端 Java Spring Boot 项目的用户用例生成及常见问题处理
java·spring boot·intellij-idea
白宇横流学长5 小时前
基于SpringBoot实现的大创管理系统设计与实现【源码+文档】
java·spring boot·后端
小柏ぁ5 小时前
calico/node is not ready: BIRD is not ready: BGP not established with xxx
运维·docker·kubernetes
考虑考虑7 小时前
Springboot3.5.x结构化日志新属性
spring boot·后端·spring