pom插件构建docker镜像

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}"]

已有 0 条评论

    欢迎您,新朋友,感谢参与互动!