SunnyFarm/backend/Dockerfile
2026-02-28 07:15:26 +08:00

40 lines
1.3 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================
# 农产品直销平台 - 后端 Dockerfile
# 多阶段构建: Maven编译 → JRE运行
# ============================================
# ---------- 第一阶段Maven构建 ----------
FROM maven:3.8-eclipse-temurin-17 AS builder
WORKDIR /build
# 配置Maven阿里云镜像加速依赖下载
RUN mkdir -p /root/.m2 && \
echo '<?xml version="1.0" encoding="UTF-8"?><settings><mirrors><mirror><id>aliyun</id><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors></settings>' > /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"]