# 多阶段构建 - 构建阶段 FROM maven:3.8-eclipse-temurin-8 AS builder WORKDIR /app # 先复制pom.xml,利用Docker缓存下载依赖 COPY pom.xml . RUN mvn dependency:go-offline -B # 复制源代码并构建 COPY src ./src RUN mvn package -DskipTests -B # 运行阶段 - 使用Eclipse Temurin JRE镜像 FROM eclipse-temurin:8-jre WORKDIR /app # 设置时区为中国 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 从构建阶段复制jar包 COPY --from=builder /app/target/*.jar app.jar # 暴露端口 EXPOSE 8080 # JVM优化参数(适合小内存设备如NAS) ENV JAVA_OPTS="-Xms128m -Xmx256m -XX:+UseG1GC -XX:MaxGCPauseMillis=100" # 启动命令 ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]