| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # ============================================
- # 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"]
|