Dockerfile 967 B

12345678910111213141516171819202122232425262728293031323334
  1. # ============================================
  2. # 阶段一:构建阶段
  3. # ============================================
  4. FROM maven:3.9.11-eclipse-temurin-17 AS builder
  5. WORKDIR /app
  6. # 先只复制 pom.xml,利用 Docker 缓存层加速依赖下载
  7. COPY pom.xml .
  8. RUN mvn dependency:go-offline -B
  9. # 复制源码并打包
  10. COPY src ./src
  11. RUN mvn clean package -DskipTests -B
  12. # ============================================
  13. # 阶段二:运行阶段(精简镜像)
  14. # ============================================
  15. FROM eclipse-temurin:17-jre-jammy
  16. WORKDIR /app
  17. # 设置时区为上海
  18. ENV TZ=Asia/Shanghai
  19. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  20. # 从构建阶段复制 JAR
  21. COPY --from=builder /app/target/Smart-Review-Backend-2.0.jar app.jar
  22. # 暴露端口
  23. EXPOSE 8080
  24. # 启动命令,激活 prod 配置
  25. ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "-Djava.security.egd=file:/dev/./urandom", "app.jar"]