pay-mall/pay-mall-app/Dockerfile

52 lines
1.6 KiB
Docker
Raw Normal View History

2025-07-17 18:30:14 +08:00
# —— 第一阶段Maven 构建 ——
FROM maven:3.8.7-eclipse-temurin-17-alpine AS builder
WORKDIR /workspace
# 复制项目级 settings.xml
2025-07-17 18:30:14 +08:00
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加速依赖下载
2025-07-17 18:30:14 +08:00
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
2025-07-17 18:30:14 +08:00
# 离线下载所有依赖
RUN mvn dependency:go-offline -B
# 2. 拷贝所有源码
COPY . .
# 3. 打包 main 应用模块,跳过测试
RUN mvn -f pom.xml clean package \
2025-07-17 18:30:14 +08:00
-pl pay-mall-app -am \
-DskipTests -B
# —— 第二阶段:运行时镜像 ——
FROM openjdk:17-jdk-slim
LABEL maintainer="smile"
# 设置时区
2025-07-17 18:30:14 +08:00
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
2025-07-17 18:30:14 +08:00
# 暴露端口
2025-07-17 18:30:14 +08:00
EXPOSE 8092
2025-07-17 18:30:14 +08:00
ENTRYPOINT ["java", "-jar", "app.jar"]