# ============================================ # 阶段一:构建阶段 # ============================================ FROM maven:3.9.11-eclipse-temurin-17 AS builder WORKDIR /app # 先只复制 pom.xml,利用 Docker 缓存层加速依赖下载 COPY pom.xml . RUN mvn dependency:go-offline -B # 复制源码并打包 COPY src ./src RUN mvn clean package -DskipTests -B # ============================================ # 阶段二:运行阶段(精简镜像) # ============================================ FROM eclipse-temurin:17-jre-jammy 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/Smart-Review-Backend-2.0.jar app.jar # 暴露端口 EXPOSE 8080 # 启动命令,激活 prod 配置 ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "-Djava.security.egd=file:/dev/./urandom", "app.jar"]