# 构建阶段 FROM maven:3.8-eclipse-temurin-17 AS builder WORKDIR /build # 一次性复制完整工程(包含所有模块) COPY . . # 直接构建(会自动先构建依赖模块) RUN mvn -U -B -DskipTests -T 1C clean package -pl ruoyi-admin -am # 运行阶段 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 # 如果目标名不是 ruoyi-admin.jar,可用通配符 COPY --from=builder /build/ruoyi-admin/target/*-admin*.jar /app/app.jar 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 ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"]