FROM maven:3.8.7-eclipse-temurin-11 AS builder
WORKDIR /build
COPY pom.xml .
# 预下载依赖，利用缓存层加速后续构建
RUN mvn dependency:go-offline -B
COPY src ./src
# 打包并跳过测试
RUN mvn package -DskipTests

FROM eclipse-temurin:11-jre-alpine
WORKDIR /app
COPY --from=builder /build/target/*.jar app.jar

# 暴露给前端的反向代理端口
EXPOSE 8080

# 覆盖application.properties里的数据库地址，将其挂载到独立volume中
ENV SPRING_DATASOURCE_URL=jdbc:sqlite:/app/data/teapot-system.db

# 挂载数据卷以持久化SQLite和潜在的图片文件
VOLUME /app/data

ENTRYPOINT ["java", "-Dspring.datasource.url=${SPRING_DATASOURCE_URL}", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]