# ============================================ # Build stage - 修复版本(先构建内部依赖) # ============================================ FROM maven:3.8-openjdk-8 AS builder ARG BUILD_NUMBER=local ARG GIT_COMMIT=unknown ARG MAVEN_OPTS=-Dmaven.wagon.http.ssl.insecure=true ENV MAVEN_OPTS="${MAVEN_OPTS}" WORKDIR /build # 复制聚合 pom 和所有源代码模块 COPY pom.xml . COPY shop-recycle-common ./shop-recycle-common COPY shop-recycle-gateway ./shop-recycle-gateway COPY shop-recycle-order-service ./shop-recycle-order-service COPY shop-recycle-payment-service ./shop-recycle-payment-service # 关键修复:第一步先安装 parent pom 到本地仓库 # 执行在根目录的 pom,这样会安装 parent(spring-cloud-log-demo) RUN mvn clean install -DskipTests -B -q # 第二步:下载 gateway 的所有依赖 RUN mvn dependency:go-offline -B -q \ -pl shop-recycle-gateway \ -am # 第三步:构建 gateway 服务 RUN mvn package -DskipTests -B -q -pl shop-recycle-gateway # ============================================ # Runtime stage # ============================================ FROM openjdk:8-jre-alpine LABEL maintainer="shop-recycle" LABEL service="shop-recycle-gateway" ENV TZ=Asia/Shanghai ENV JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200" WORKDIR /app COPY --from=builder /build/shop-recycle-gateway/target/*.jar app.jar EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health ; exit 1 ENTRYPOINT ["sh", "-c", "exec java ${JAVA_OPTS} -jar app.jar"]