|
@@ -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"]
|