pay-mall/pay-mall-app/Dockerfile

51 lines
1.6 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# —— 第一阶段Maven 构建 ——
FROM maven:3.8.6-openjdk-8-slim AS builder
WORKDIR /workspace
# 复制项目级 settings.xml
COPY .mvn/settings.xml /root/.m2/settings.xml
# 预先把外部模块的 JAR 复制进来,并安装到本地仓库
COPY docs/libs/group-buying-sys-api-1.0-SNAPSHOT.jar /tmp/group-buying-sys-api.jar
RUN mvn install:install-file \
-Dfile=/tmp/group-buying-sys-api.jar \
-DgroupId=edu.whut \
-DartifactId=group-buying-sys-api \
-Dversion=1.0-SNAPSHOT \
-Dpackaging=jar
# 1. 拷贝父 POM 及各模块的 pom.xml加速依赖下载
COPY pom.xml ./pom.xml
COPY pay-mall-api/pom.xml ./pay-mall-api/pom.xml
COPY pay-mall-domain/pom.xml ./pay-mall-domain/pom.xml
COPY pay-mall-infrastructure/pom.xml ./pay-mall-infrastructure/pom.xml
COPY pay-mall-trigger/pom.xml ./pay-mall-trigger/pom.xml
COPY pay-mall-types/pom.xml ./pay-mall-types/pom.xml
COPY pay-mall-app/pom.xml ./pay-mall-app/pom.xml
# 离线下载所有依赖
RUN mvn dependency:go-offline -B
# 2. 拷贝所有源码
COPY . .
# 3. 打包 main 应用模块,跳过测试
RUN mvn -f pom.xml clean package \
-pl pay-mall-app -am \
-DskipTests -B
# —— 第二阶段:运行时镜像 ——
FROM openjdk:8-jdk-slim
LABEL maintainer="smile"
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝打包产物
COPY --from=builder /workspace/pay-mall-app/target/pay-mall-app.jar app.jar
# 暴露端口
EXPOSE 8092
ENTRYPOINT ["java", "-jar", "app.jar"]