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