34 lines
815 B
Docker
34 lines
815 B
Docker
# Backend: Maven 使用阿里云镜像,多阶段构建
|
||
FROM maven:3.9-eclipse-temurin-8-alpine AS builder
|
||
|
||
# 使用国内 Maven 配置(阿里云)
|
||
COPY docker/maven-settings.xml /root/.m2/settings.xml
|
||
|
||
WORKDIR /build
|
||
|
||
# 先复制 pom,利用 Docker 层缓存
|
||
COPY backend/pom.xml .
|
||
RUN mvn dependency:go-offline -B -q
|
||
|
||
COPY backend/src ./src
|
||
RUN mvn package -DskipTests -B -q
|
||
|
||
# 运行阶段
|
||
FROM eclipse-temurin:8-jre-alpine
|
||
|
||
RUN apk add --no-cache libgcc tzdata \
|
||
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
||
&& echo "Asia/Shanghai" > /etc/timezone
|
||
|
||
WORKDIR /app
|
||
|
||
COPY --from=builder /build/target/*.jar app.jar
|
||
|
||
# 数据目录(H2 数据库文件)
|
||
ENV DATA_DIR=/app/data
|
||
RUN mkdir -p ${DATA_DIR}
|
||
|
||
EXPOSE 48080
|
||
|
||
ENTRYPOINT ["java", "-jar", "app.jar"]
|