在Spring Boot项目中,使用Docker Maven插件(通常是docker-maven-plugin
或者fabric8io/docker-maven-plugin
)来自动化构建Docker镜像并将其推送到远程仓库。
这里分别介绍这两种插件的基本配置,并说明如何设置远程仓库推送。
1、使用 docker-maven-plugin
docker-maven-plugin
插件实际上是由 spotify
提供的,而 spotify
官方已经停止了对这个插件的维护。
<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插件,提供了更多的功能和更好的维护。
<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
。
<servers>
<server>
<id>docker-hub</id>
<username>你的用户名</username>
<password>你的密码</password>
</server>
</servers>
- 在
pom.xml
中配置插件,包括镜像名称、构建目录、执行阶段等。 - 在Maven的
settings.xml
中配置远程仓库的认证信息。 - 使用Maven命令(如
mvn clean package docker
)。