40 lines
1.3 KiB
Docker
40 lines
1.3 KiB
Docker
# ============================================
|
||
# 农产品直销平台 - 后端 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"]
|