2025-07-08 18:08:38 +08:00

49 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.7-eclipse-temurin-17-alpine AS builder
WORKDIR /workspace
# 把项目级 settings.xml 复制到容器里
COPY .mvn/settings.xml /root/.m2/settings.xml
# 1. 先只拷贝父 POM 及各模块的 pom.xml加速依赖下载
COPY pom.xml ./pom.xml
COPY group-buying-sys-api/pom.xml ./group-buying-sys-api/pom.xml
COPY group-buying-sys-domain/pom.xml ./group-buying-sys-domain/pom.xml
COPY group-buying-sys-infrastructure/pom.xml ./group-buying-sys-infrastructure/pom.xml
COPY group-buying-sys-trigger/pom.xml ./group-buying-sys-trigger/pom.xml
COPY group-buying-sys-types/pom.xml ./group-buying-sys-types/pom.xml
COPY group-buying-sys-app/pom.xml ./group-buying-sys-app/pom.xml
# 离线下载所有依赖
RUN mvn dependency:go-offline -B
# 2. 拷贝所有源码
COPY . .
# 3. 只打包 main 应用模块(连带编译它依赖的模块),跳过测试,加速构建
RUN mvn \
-f pom.xml clean package \
-pl group-buying-sys-app -am \
-DskipTests -B
# —— 第二阶段:运行时镜像 ——
FROM openjdk:8-jre-slim
LABEL maintainer="smile"
# 可选:设置时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
&& echo $TZ > /etc/timezone
# 把构建产物拷过来
COPY --from=builder \
/workspace/group-buying-sys-app/target/group-buying-sys-app-*.jar \
/app.jar
# 暴露端口,按需改
EXPOSE 8091
# 启动命令,可通过 -e JAVA_OPTS / -e PARAMS 传参数
ENV PARAMS=""
ENTRYPOINT ["sh","-c","java $JAVA_OPTS -jar /app.jar $PARAMS"]