智慧水务管理系统 - 精河县供水工程综合管理平台

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # ============================================================
  2. # wm-patrol 巡检服务 Dockerfile (Multi-stage)
  3. # Build: docker build -t water/wm-patrol -f Dockerfile.patrol .
  4. # ============================================================
  5. # ---------- Stage 1: Build ----------
  6. FROM maven:3.9-eclipse-temurin-17 AS builder
  7. WORKDIR /build
  8. # Copy parent POM and module POMs (dependency caching)
  9. COPY pom.xml ./
  10. COPY wm-common/pom.xml wm-common/
  11. COPY wm-patrol/pom.xml wm-patrol/
  12. RUN mvn dependency:go-offline -pl wm-patrol -am -B 2>/dev/null || true
  13. # Copy source
  14. COPY wm-common/ wm-common/
  15. COPY wm-patrol/ wm-patrol/
  16. # Build
  17. RUN mvn clean package -pl wm-patrol -am -DskipTests -B
  18. # ---------- Stage 2: Runtime ----------
  19. FROM eclipse-temurin:17-jre-alpine
  20. LABEL maintainer="water-management-team"
  21. LABEL description="智慧水务管理系统 - 巡检服务"
  22. RUN apk add --no-cache curl tzdata \
  23. && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  24. && echo "Asia/Shanghai" > /etc/timezone
  25. WORKDIR /app
  26. COPY --from=builder /build/wm-patrol/target/wm-patrol-*.jar app.jar
  27. EXPOSE 8087
  28. HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
  29. CMD curl -sf http://localhost:8087/actuator/health || exit 1
  30. ENTRYPOINT ["java", "-Xms256m", "-Xmx512m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]