Przeglądaj źródła

fix: ensure shop-recycle-common is built before go-offline in order-service and payment-service

Builder 2 miesięcy temu
rodzic
commit
ce537264a4

+ 55 - 55
shop-recycle-order-service/Dockerfile.optimized

@@ -1,55 +1,55 @@
-# ============================================
-# Build stage - 精简版(假设common已预先安装到本地仓库)
-# ============================================
-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.xml 和源代码(common 从本地仓库获取)
-COPY pom.xml .
-COPY shop-recycle-common/pom.xml ./shop-recycle-common/pom.xml
-COPY shop-recycle-order-service/ ./shop-recycle-order-service/
-COPY shop-recycle-gateway/pom.xml ./shop-recycle-gateway/
-COPY shop-recycle-payment-service/pom.xml ./shop-recycle-payment-service/
-
-# 仅下载依赖(common 会从本地仓库的缓存获取)
-RUN mvn dependency:go-offline -B -q \
-    -pl shop-recycle-order-service \
-    -am
-
-# 构建服务(跳过其他模块,只构建 order-service)
-RUN mvn package -DskipTests -B -q \
-    -pl shop-recycle-order-service \
-    -Dmaven.test.skip=true \
-    -Ddocker.build.number=${BUILD_NUMBER} \
-    -Dgit.commit=${GIT_COMMIT}
-
-# ============================================
-# Runtime stage
-# ============================================
-FROM openjdk:8-jre-alpine
-
-LABEL maintainer="shop-recycle"
-LABEL service="shop-recycle-order-service"
-LABEL build.number=${BUILD_NUMBER}
-LABEL git.commit=${GIT_COMMIT}
-
-ENV TZ=Asia/Shanghai
-ENV JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
-
-WORKDIR /app
-
-COPY --from=builder /build/shop-recycle-order-service/target/*.jar order-service.jar
-
-EXPOSE 8081
-
-HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
-    CMD wget --no-verbose --tries=1 --spider http://localhost:8081/health || exit 1
-
-ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar order-service.jar"]
+# ============================================
+# 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-order-service/ ./shop-recycle-order-service/
+COPY shop-recycle-gateway/pom.xml ./shop-recycle-gateway/
+COPY shop-recycle-payment-service/pom.xml ./shop-recycle-payment-service/
+
+# 第一步:先安装所有模块到本地仓库(包括 common)
+RUN mvn clean install -DskipTests -B -q
+
+# 第二步:下载 order-service 的所有依赖
+RUN mvn dependency:go-offline -B -q \
+    -pl shop-recycle-order-service \
+    -am
+
+# 第三步:构建 order-service
+RUN mvn package -DskipTests -B -q \
+    -pl shop-recycle-order-service
+
+# ============================================
+# Runtime stage
+# ============================================
+FROM openjdk:8-jre-alpine
+
+LABEL maintainer="shop-recycle"
+LABEL service="shop-recycle-order-service"
+LABEL build.number=${BUILD_NUMBER}
+LABEL git.commit=${GIT_COMMIT}
+
+ENV TZ=Asia/Shanghai
+ENV JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
+
+WORKDIR /app
+
+COPY --from=builder /build/shop-recycle-order-service/target/*.jar order-service.jar
+
+EXPOSE 8081
+
+HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
+    CMD wget --no-verbose --tries=1 --spider http://localhost:8081/health ; exit 1
+
+ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar order-service.jar"]

+ 55 - 55
shop-recycle-payment-service/Dockerfile.optimized

@@ -1,55 +1,55 @@
-# ============================================
-# Build stage - 精简版(假设common已预先安装到本地仓库)
-# ============================================
-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.xml 和源代码(common 从本地仓库获取)
-COPY pom.xml .
-COPY shop-recycle-common/pom.xml ./shop-recycle-common/pom.xml
-COPY shop-recycle-payment-service/ ./shop-recycle-payment-service/
-COPY shop-recycle-gateway/pom.xml ./shop-recycle-gateway/
-COPY shop-recycle-order-service/pom.xml ./shop-recycle-order-service/
-
-# 仅下载依赖(common 会从本地仓库的缓存获取)
-RUN mvn dependency:go-offline -B -q \
-    -pl shop-recycle-payment-service \
-    -am
-
-# 构建服务(跳过其他模块,只构建 payment-service)
-RUN mvn package -DskipTests -B -q \
-    -pl shop-recycle-payment-service \
-    -Dmaven.test.skip=true \
-    -Ddocker.build.number=${BUILD_NUMBER} \
-    -Dgit.commit=${GIT_COMMIT}
-
-# ============================================
-# Runtime stage
-# ============================================
-FROM openjdk:8-jre-alpine
-
-LABEL maintainer="shop-recycle"
-LABEL service="shop-recycle-payment-service"
-LABEL build.number=${BUILD_NUMBER}
-LABEL git.commit=${GIT_COMMIT}
-
-ENV TZ=Asia/Shanghai
-ENV JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
-
-WORKDIR /app
-
-COPY --from=builder /build/shop-recycle-payment-service/target/*.jar payment-service.jar
-
-EXPOSE 8082
-
-HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
-    CMD wget --no-verbose --tries=1 --spider http://localhost:8082/health || exit 1
-
-ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar payment-service.jar"]
+# ============================================
+# 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-order-service/pom.xml ./shop-recycle-order-service/
+COPY shop-recycle-gateway/pom.xml ./shop-recycle-gateway/
+COPY shop-recycle-payment-service/ ./shop-recycle-payment-service/
+
+# 第一步:先安装所有模块到本地仓库(包括 common)
+RUN mvn clean install -DskipTests -B -q
+
+# 第二步:下载 payment-service 的所有依赖
+RUN mvn dependency:go-offline -B -q \
+    -pl shop-recycle-payment-service \
+    -am
+
+# 第三步:构建 payment-service
+RUN mvn package -DskipTests -B -q \
+    -pl shop-recycle-payment-service
+
+# ============================================
+# Runtime stage
+# ============================================
+FROM openjdk:8-jre-alpine
+
+LABEL maintainer="shop-recycle"
+LABEL service="shop-recycle-payment-service"
+LABEL build.number=${BUILD_NUMBER}
+LABEL git.commit=${GIT_COMMIT}
+
+ENV TZ=Asia/Shanghai
+ENV JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
+
+WORKDIR /app
+
+COPY --from=builder /build/shop-recycle-payment-service/target/*.jar payment-service.jar
+
+EXPOSE 8082
+
+HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
+    CMD wget --no-verbose --tries=1 --spider http://localhost:8082/health ; exit 1
+
+ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar payment-service.jar"]