# ============================================ # 农产品直销平台 - 后端 Dockerfile # 多阶段构建: Maven编译 → JRE运行 # ============================================ # ---------- 第一阶段:Maven构建 ---------- FROM maven:3.8-eclipse-temurin-17 AS builder WORKDIR /build # 配置Maven阿里云镜像(加速依赖下载) RUN mkdir -p /root/.m2 && \ echo 'aliyun*https://maven.aliyun.com/repository/public' > /root/.m2/settings.xml # 先复制pom.xml,利用Docker缓存层加速(依赖不变时跳过下载) COPY pom.xml . RUN mvn dependency:go-offline -B # 复制源代码并打包 COPY src ./src RUN mvn clean package -DskipTests # ---------- 第二阶段:运行时 ---------- FROM eclipse-temurin:17-jre WORKDIR /app # 设置时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone # 创建日志目录 RUN mkdir -p /app/logs # 从构建阶段复制JAR包 COPY --from=builder /build/target/sunny-farm-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 # 启动命令(支持通过JAVA_OPTS传入JVM参数) ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]