# ========== 阶段一:Maven 构建(使用带 Maven 的镜像 + 国内源) ========== FROM maven:3.9-eclipse-temurin-8-alpine AS builder WORKDIR /build # 使用阿里云 Maven 镜像,加速依赖下载 COPY docker/maven-settings.xml /root/.m2/settings.xml # 先只复制 pom,利用 Docker 缓存依赖层 COPY pom.xml . RUN mvn dependency:go-offline -B -q # 复制源码并打包(跳过测试,加快构建) COPY src ./src RUN mvn clean package -DskipTests -B -q # ========== 阶段二:运行 ========== FROM eclipse-temurin:8-jre-alpine WORKDIR /app # 从构建阶段复制 jar COPY --from=builder /build/target/sftp-manager-1.0.0.jar app.jar # 数据与日志目录(挂载卷时会覆盖) RUN mkdir -p /app/data /app/logs EXPOSE 48081 ENTRYPOINT ["java", "-jar", "app.jar"]