# 构建阶段 FROM maven:3.9-eclipse-temurin-17 AS builder WORKDIR /build # 复制本地 Maven 仓库(已缓存的依赖) COPY .m2-repo /root/.m2/repository # 复制源码 COPY pom.xml . COPY src ./src # 离线编译 RUN mvn clean package -DskipTests -B -o # 运行阶段 FROM eclipse-temurin:17-jre-jammy LABEL maintainer="JohnSion" LABEL description="武术比赛管理系统后端服务" WORKDIR /app COPY --from=builder /build/target/blade-api.jar /app/blade-api.jar EXPOSE 8123 HEALTHCHECK --interval=30s --timeout=3s --start-period=90s --retries=3 CMD curl -f http://localhost:8123/actuator/health || exit 1 ENV JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC" ENV SPRING_PROFILE="docker" CMD ["sh", "-c", "java ${JAVA_OPTS} -jar /app/blade-api.jar --spring.profiles.active=${SPRING_PROFILE}"]