2025-09-30 14:23:33 +08:00
|
|
|
|
# 构建阶段
|
|
|
|
|
|
FROM maven:3.8-eclipse-temurin-17 AS builder
|
|
|
|
|
|
WORKDIR /build
|
|
|
|
|
|
|
2025-09-30 16:55:42 +08:00
|
|
|
|
# 一次性复制完整工程(包含所有模块)
|
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
|
|
|
|
# 直接构建(会自动先构建依赖模块)
|
|
|
|
|
|
RUN mvn -U -B -DskipTests -T 1C clean package -pl ruoyi-admin -am
|
2025-09-30 14:23:33 +08:00
|
|
|
|
|
|
|
|
|
|
# 运行阶段
|
|
|
|
|
|
FROM eclipse-temurin:17-jre-alpine
|
|
|
|
|
|
RUN apk add --no-cache curl tzdata && \
|
|
|
|
|
|
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
|
|
|
|
|
echo "Asia/Shanghai" > /etc/timezone && \
|
|
|
|
|
|
apk del tzdata
|
|
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
RUN mkdir -p /app/logs /app/upload
|
|
|
|
|
|
|
2025-09-30 16:55:42 +08:00
|
|
|
|
# 如果目标名不是 ruoyi-admin.jar,可用通配符
|
|
|
|
|
|
COPY --from=builder /build/ruoyi-admin/target/*-admin*.jar /app/app.jar
|
2025-09-30 14:23:33 +08:00
|
|
|
|
|
|
|
|
|
|
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
|
|
|
|
|
|
EXPOSE 8080
|
|
|
|
|
|
|
|
|
|
|
|
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=60s \
|
|
|
|
|
|
CMD curl -f http://localhost:8080/actuator/health || exit 1
|
|
|
|
|
|
|
2025-09-30 16:55:42 +08:00
|
|
|
|
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"]
|