pom插件
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<!--构建docker镜像-->
<execution>
<id>build-docker-image</id>
<phase>package</phase> <!-- 绑定到 package 阶段 -->
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>docker</executable>
<arguments>
<argument>build</argument>
<!-- 构建参数(与 Dockerfile 中的 ARG 对应) -->
<argument>--build-arg</argument>
<argument>APP_NAME=${project.build.finalName}</argument>
<argument>--build-arg</argument>
<argument>BASE_JDK=harbor.xuehang.ren/library/openjdk:8u111-jre-alpine</argument>
<!-- 镜像标签 -->
<argument>-t</argument>
<argument>harbor.xuehang.ren/mblog/${project.build.finalName}:${project.version}</argument>
<!-- Dockerfile 路径 + 构建上下文(项目根目录) -->
<argument>-f</argument>
<argument>${project.basedir}/Dockerfile</argument>
<argument>${project.basedir}</argument>
</arguments>
</configuration>
</execution>
<!--推送Docker镜像到Harbor -->
<execution>
<id>push-docker-image</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>docker</executable>
<arguments>
<argument>push</argument>
<argument>harbor.xuehang.ren/mblog/${project.build.finalName}:${project.version}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
dockerfile
ARG BASE_JDK
FROM $BASE_JDK
# 指定维护者的名字
MAINTAINER renxuehang
# 将当前目录下的jar包复制到docker容器的/目录下
ARG APP_NAME
ADD target/$APP_NAME.jar /app.jar
RUN mkdir -p /config && chmod 755 /config
ADD target/classes/*.yml /config/
# 定义默认环境变量(可被运行时覆盖)
ENV JVM_OPTS="-Xms256m -Xmx512m"
ENV BOOT_OPTS=""
ENV SERVER_PORT="8080"
# 暴露端口(使用环境变量)
EXPOSE ${SERVER_PORT}
# 运行命令(使用环境变量作为参数)
ENTRYPOINT ["sh", "-c", "java ${JVM_OPTS} -jar /app.jar ${BOOT_OPTS} --server.port=${SERVER_PORT}"]注意:本文归作者所有,未经作者允许,不得转载
