31 lines
807 B
Docker
31 lines
807 B
Docker
# ========== 阶段一: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"]
|