<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
2. 添加 docker.image.prefix 属性值
<properties>
<docker.image.prefix>192.168.10.110:5000</docker.image.prefix>
</properties>
Dockerfile 文件的存放路径与 pom.xml 同级!

FROM eclipse-temurin:17-jre as builder
WORKDIR /opt/java/openjdk/lib/security
COPY server.pem .
RUN keytool -import -alias keycloak -file server.pem -keystore cacerts \
-storepass changeit -noprompt
WORKDIR /application
# 应用程序的JAR文件
ARG JAR_FILE=target/*.jar
# 将应用程序的JAR文件添加到容器中
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
FROM eclipse-temurin:17-jre
WORKDIR /opt/java/openjdk/lib/security
COPY --from=builder /opt/java/openjdk/lib/security/cacerts ./
WORKDIR /application
COPY --from=builder /application/dependencies/ ./
COPY --from=builder /application/spring-boot-loader/ ./
COPY --from=builder /application/snapshot-dependencies/ ./
COPY --from=builder /application/application/ ./
# 开放端口
EXPOSE 8080 8081
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
$ docker tag 192.168.10.110:5000/cloud-learning:0.0.1-SNAPSHOT cloud-learning:latest
$ docker run -d --name cloud -p 8080:8080 -p 8081:8081 cloud-learning