# 构建阶段 FROM maven:3.9-eclipse-temurin-17-alpine AS builder WORKDIR /app # 复制pom.xml和源代码 COPY pom.xml . COPY src ./src # 设置镜像源加速构建 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories # 构建应用 RUN mvn clean package -DskipTests # 运行阶段 FROM eclipse-temurin:17-jre-alpine WORKDIR /app # 安装必要的工具 RUN apk add --no-cache tzdata curl # 设置时区 ENV TZ=Asia/Shanghai # 从构建阶段复制jar包 COPY --from=builder /app/target/*.jar app.jar # 创建上传目录 RUN mkdir -p /var/erp/uploads && chown -R 1000:1000 /var/erp/uploads # 创建非root用户 RUN addgroup -g 1000 erp && adduser -u 1000 -G erp -s /bin/sh -D erp USER erp # 暴露端口 EXPOSE 8082 # 健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost:8082/actuator/health || exit 1 # 启动命令 ENTRYPOINT ["java", "-jar", "-Xms256m", "-Xmx512m", "-XX:+UseG1GC", "app.jar"]