# 多阶段构建:编译阶段 FROM maven:3.9-eclipse-temurin-17 AS builder WORKDIR /build # 复制主项目源码 COPY pom.xml . COPY src ./src # 编译项目(在 Drone 中已经编译好,这里只是复制) RUN mkdir -p target # 运行阶段:使用轻量级 JRE 镜像 FROM eclipse-temurin:17-jre-jammy LABEL maintainer="JohnSion" LABEL description="武术比赛管理系统后端服务" WORKDIR /app # 复制编译好的 JAR 文件 COPY target/blade-api.jar /app/blade-api.jar # 暴露端口 EXPOSE 8123 # 健康检查 HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \ CMD curl -f http://localhost:8123/actuator/health || exit 1 # JVM 参数配置 ENV JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC" ENV SPRING_PROFILE="dev" # 启动命令 CMD ["sh", "-c", "java ${JAVA_OPTS} -jar /app/blade-api.jar --spring.profiles.active=${SPRING_PROFILE}"]