| 12345678910111213141516171819202122232425262728293031323334 |
- # ============================================
- # 阶段一:构建阶段
- # ============================================
- 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"]
|