Dockerfile 506 B

123456789101112131415161718192021222324252627282930
  1. # 构建阶段
  2. FROM maven:3.6.1 AS builder
  3. WORKDIR /app
  4. # 复制 Maven 配置文件
  5. COPY pom.xml .
  6. # 下载依赖(利用 Docker 缓存层)
  7. RUN mvn dependency:go-offline -B
  8. # 复制源代码并构建
  9. COPY src ./src
  10. RUN mvn clean package -DskipTests -B
  11. # 运行阶段
  12. FROM eclipse-temurin:21-jre-alpine
  13. WORKDIR /app
  14. # 从构建阶段复制 jar 包
  15. COPY --from=builder /app/target/*.jar app.jar
  16. # 设置文件所有权
  17. RUN chown -R appuser:appgroup /app
  18. # 切换到非 root 用户
  19. USER appuser