| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- # ============================================
- # Build stage with incremental cache support
- # 支持多种国内镜像源
- # ============================================
- # 使用方式:
- # docker build -t gateway:latest . # 默认使用阿里云
- # docker build --build-arg REGISTRY=hub.c.163.com/library -t gateway:latest . # 网易云
- # docker build --build-arg SOURCE=distroless -t gateway:latest . # Distroless
- ARG SOURCE=aliyun
- ARG REGISTRY=registry.aliyuncs.com/library
- # ====== 阿里云源 ======
- FROM ${REGISTRY}/maven:3.8-openjdk-8 AS builder-aliyun
- ARG BUILD_NUMBER=local
- ARG GIT_COMMIT=unknown
- ARG MAVEN_OPTS=-Dmaven.wagon.http.ssl.insecure=true
- ENV MAVEN_OPTS="${MAVEN_OPTS}"
- WORKDIR /build
- 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/
- # Build common module first and install to local repository
- RUN mvn clean install -pl shop-recycle-common \
- -DskipTests -B -q \
- -Dmaven.test.skip=true
- RUN mvn dependency:go-offline -B -q
- COPY shop-recycle-gateway/src shop-recycle-gateway/src
- RUN mvn package -DskipTests -B -q \
- -pl shop-recycle-gateway \
- -am \
- -Dmaven.test.skip=true \
- -Ddocker.build.number=${BUILD_NUMBER} \
- -Dgit.commit=${GIT_COMMIT}
- # ====== 取决于SOURCE参数的最终镜像 ======
- FROM ${REGISTRY}/openjdk:8-jre-alpine
- LABEL maintainer="shop-recycle"
- LABEL service="shop-recycle-gateway"
- LABEL build.number=${BUILD_NUMBER}
- LABEL git.commit=${GIT_COMMIT}
- LABEL mirror-source=${SOURCE}
- ENV TZ=Asia/Shanghai
- ENV JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
- WORKDIR /app
- COPY --from=builder-aliyun /build/shop-recycle-gateway/target/*.jar gateway.jar
- EXPOSE 8080
- # Alpine中使用wget(比curl轻量)
- 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", "java ${JAVA_OPTS} -jar gateway.jar"]
|