27 lines
811 B
Docker
Raw Normal View History

2025-07-31 17:02:17 +08:00
# —— builder 阶段 ——
FROM maven:3.8.7-eclipse-temurin-17-alpine AS builder
WORKDIR /workspace
# ① 如没有私服,可删掉这行;否则保留
COPY .mvn/settings.xml /root/.m2/settings.xml
# ② 先拷 POM 并预拉依赖,提升缓存命中率
COPY pom.xml .
RUN mvn -B dependency:go-offline
# ③ 再拷源码并真正打包,显式执行 spring-boot:repackage
COPY src src
RUN mvn -B clean package spring-boot:repackage -DskipTests
# —— runtime 阶段 ——
FROM openjdk:17-jdk-slim
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 指向你在 pom.xml 里定义的 finalName
ARG JAR_FILE=smile-picture-backend.jar
COPY --from=builder /workspace/target/${JAR_FILE} /app.jar
EXPOSE 8096
ENTRYPOINT ["java", "-jar", "/app.jar"]