From eb5259d61329db91c8289dba7449bfb00efe7b81 Mon Sep 17 00:00:00 2001 From: dxin Date: Thu, 27 Nov 2025 12:15:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0=E7=A7=81=E6=9C=8D?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E7=9A=84dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile/java/新的/admin_Dockerfile | 45 ++++++++++++++++++ Dockerfile/java/新的/agent_Dockerfile | 46 +++++++++++++++++++ Dockerfile/java/新的/email_Dockerfile | 45 ++++++++++++++++++ Dockerfile/java/新的/payment_Dockerfile | 46 +++++++++++++++++++ Dockerfile/java/{ => 旧的}/admin_Dockerfile | 0 Dockerfile/java/{ => 旧的}/agent_Dockerfile | 0 Dockerfile/java/{ => 旧的}/email_Dockerfile | 0 Dockerfile/java/{ => 旧的}/payment_Dockerfile | 0 8 files changed, 182 insertions(+) create mode 100644 Dockerfile/java/新的/admin_Dockerfile create mode 100644 Dockerfile/java/新的/agent_Dockerfile create mode 100644 Dockerfile/java/新的/email_Dockerfile create mode 100644 Dockerfile/java/新的/payment_Dockerfile rename Dockerfile/java/{ => 旧的}/admin_Dockerfile (100%) rename Dockerfile/java/{ => 旧的}/agent_Dockerfile (100%) rename Dockerfile/java/{ => 旧的}/email_Dockerfile (100%) rename Dockerfile/java/{ => 旧的}/payment_Dockerfile (100%) diff --git a/Dockerfile/java/新的/admin_Dockerfile b/Dockerfile/java/新的/admin_Dockerfile new file mode 100644 index 0000000..d3d1ab5 --- /dev/null +++ b/Dockerfile/java/新的/admin_Dockerfile @@ -0,0 +1,45 @@ +# ---- 阶段 1: 使用 Maven Build ---- +FROM maven:3.9.6-eclipse-temurin-21 AS builder + +WORKDIR /build + +# 先仅复制 pom.xml 用于依赖缓存 +COPY pom.xml . + +# 预下载所有依赖,pom 不变就不会重新下载 +RUN mvn -B dependency:go-offline + +# 复制所有源码 +COPY . . + +# 开始 Maven 构建 +RUN mvn clean package -DskipTests + +# ---- 阶段 2: 构建运行镜像 ---- +# 使用 Java 21 精简镜像(含JDK,运行Spring Boot等Java应用) +# FROM mirror.ccs.tencentyun.com/library/openjdk:21-jdk-slim AS runtime +FROM eclipse-temurin:21-jre AS runtime + +# 配置环境变量 +ENV APP_HOME=/app \ + # 应用名称 + APP_NAME=flymoon-admin \ + # 默认启动环境sit,可被覆盖,外部使用-e or env SPRING_PROFILES_ACTIVE=xxx覆盖 + SPRING_PROFILES_ACTIVE=sit \ + # 阶段1构建后的产生的JAR文件位置 + PRODUCT_DIR="/build/target/" \ + LANG=C.UTF-8 \ + TZ=Asia/Shanghai \ + JAVA_OPTS="" + +# 创建应用工作目录 +WORKDIR ${APP_HOME} + +# 复制阶段1构建后的主应用JAR产物到容器工作目录 +COPY --from=builder ${PRODUCT_DIR}${APP_NAME}.jar ${APP_HOME}/${APP_NAME}.jar + +# 暴露应用端口 +EXPOSE 8080 + +# 启动命令(支持外部传入JVM参数,如 -Xms512m -Xmx1024m) +ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar $APP_HOME/$APP_NAME.jar --spring.profiles.active=$SPRING_PROFILES_ACTIVE"] diff --git a/Dockerfile/java/新的/agent_Dockerfile b/Dockerfile/java/新的/agent_Dockerfile new file mode 100644 index 0000000..c7f34d8 --- /dev/null +++ b/Dockerfile/java/新的/agent_Dockerfile @@ -0,0 +1,46 @@ +# ---- 阶段 1: 使用 Maven Build ---- +FROM maven:3.9.6-eclipse-temurin-21 AS builder + +WORKDIR /build + +# 先仅复制 pom.xml 用于依赖缓存 +COPY flymoon-agent-api/pom.xml flymoon-agent-api/ +COPY flymoon-agent-provider/pom.xml flymoon-agent-provider/ + +# 预下载所有依赖,pom 不变就不会重新下载 +RUN mvn -B dependency:go-offline + +# 复制所有源码 +COPY . . + +# 开始 Maven 构建 +RUN mvn clean package -DskipTests + +# ---- 阶段 2: 构建运行镜像 ---- +# 使用 Java 21 精简镜像(含JDK,运行Spring Boot等Java应用) +# FROM mirror.ccs.tencentyun.com/library/openjdk:21-jdk-slim AS runtime +FROM eclipse-temurin:21-jre AS runtime + +# 配置环境变量 +ENV APP_HOME=/app \ + # 应用名称 + APP_NAME=flymoon-agent \ + # 默认启动环境sit,可被覆盖,外部使用-e or env SPRING_PROFILES_ACTIVE=xxx覆盖 + SPRING_PROFILES_ACTIVE=sit \ + # 阶段1构建后的产生的JAR文件位置 + PRODUCT_DIR="/build/flymoon-agent-provider/target/" \ + LANG=C.UTF-8 \ + TZ=Asia/Shanghai \ + JAVA_OPTS="" + +# 创建应用工作目录 +WORKDIR ${APP_HOME} + +# 复制阶段1构建后的主应用JAR产物到容器工作目录 +COPY --from=builder ${PRODUCT_DIR}${APP_NAME}.jar ${APP_HOME}/${APP_NAME}.jar + +# 暴露应用端口(Spring Boot Web 端口、 Dubbo RPC 服务端口、Dubbo QoS 监控端口等) +EXPOSE 8070 20881 + +# 启动命令(支持外部传入JVM参数,如 -Xms512m -Xmx1024m) +ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar $APP_HOME/$APP_NAME.jar --spring.profiles.active=$SPRING_PROFILES_ACTIVE"] diff --git a/Dockerfile/java/新的/email_Dockerfile b/Dockerfile/java/新的/email_Dockerfile new file mode 100644 index 0000000..3316ae5 --- /dev/null +++ b/Dockerfile/java/新的/email_Dockerfile @@ -0,0 +1,45 @@ +# ---- Stage 1: Build with Maven ---- +FROM maven:3.8.8-eclipse-temurin-8 AS builder + +WORKDIR /build + +# 先仅复制 pom.xml 用于依赖缓存 +COPY application/pom.xml application/ +COPY domain/pom.xml domain/ +COPY infrastructure-cn/pom.xml infrastructure-cn/ +COPY infrastructure-us/pom.xml infrastructure-us/ +COPY infrastructure/pom.xml infrastructure/ +COPY interface/pom.xml interface/ +COPY start/pom.xml start/ +COPY pom.xml . + +# 预下载所有依赖,pom 不变就不会重新下载 +RUN mvn -B dependency:go-offline + +# 再复制所有源码 +COPY . . + +# 开始 Maven 构建,配置变量可变,us 或 cn, 默认为 us +ARG MAVEN_BUILD_PROFILE=us +RUN mvn clean package -Dmaven.test.skip=true -P${MAVEN_BUILD_PROFILE} + +# ---- Stage 2: Runtime ---- +FROM mirror.ccs.tencentyun.com/library/openjdk:8-jdk AS runtime + +# 创建应用工作目录 +WORKDIR /app + +ENV LANG=C.UTF-8 \ + TZ=Asia/Shanghai \ + JAVA_OPTS="" + +# 从构建阶段复制 JAR +COPY --from=builder /build/start/target/start-0.0.1-SNAPSHOT.jar /app/flymoon-email.jar + +EXPOSE 4997 4998 + +# 运行时配置可变 +ARG RUN_PROFILE=sit-us +ENV SPRING_PROFILES_ACTIVE=${RUN_PROFILE} + +ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app/flymoon-email.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE}"] diff --git a/Dockerfile/java/新的/payment_Dockerfile b/Dockerfile/java/新的/payment_Dockerfile new file mode 100644 index 0000000..2e29a81 --- /dev/null +++ b/Dockerfile/java/新的/payment_Dockerfile @@ -0,0 +1,46 @@ +# ---- 阶段 1: 使用 Maven Build ---- +FROM maven:3.9.6-eclipse-temurin-21 AS builder + +WORKDIR /build + +# 先仅复制 pom.xml 用于依赖缓存 +COPY flymoon-payment-api/pom.xml flymoon-payment-api/ +COPY flymoon-payment-provider/pom.xml flymoon-payment-provider/ + +# 预下载所有依赖,pom 不变就不会重新下载 +RUN mvn -B dependency:go-offline + +# 复制所有源码 +COPY . . + +# 开始 Maven 构建 +RUN mvn clean package -DskipTests + +# ---- 阶段 2: 构建运行镜像 ---- +# 使用 Java 21 精简镜像(含JDK,运行Spring Boot等Java应用) +# FROM mirror.ccs.tencentyun.com/library/openjdk:21-jdk-slim AS runtime +FROM eclipse-temurin:21-jre AS runtime + +# 配置环境变量 +ENV APP_HOME=/app \ + # 应用名称 + APP_NAME=flymoon-payment \ + # 默认启动环境sit,可被覆盖,外部使用-e or env SPRING_PROFILES_ACTIVE=xxx覆盖 + SPRING_PROFILES_ACTIVE=sit \ + # 阶段1构建后的产生的JAR文件位置 + PRODUCT_DIR="/build/flymoon-payment-provider/target/" \ + LANG=C.UTF-8 \ + TZ=Asia/Shanghai \ + JAVA_OPTS="" + +# 创建应用工作目录 +WORKDIR ${APP_HOME} + +# 复制阶段1构建后的主应用JAR产物到容器工作目录 +COPY --from=builder ${PRODUCT_DIR}${APP_NAME}.jar ${APP_HOME}/${APP_NAME}.jar + +# 暴露应用端口(Spring Boot Web 端口、 Dubbo RPC 服务端口、Dubbo QoS 监控端口等) +EXPOSE 8090 20884 + +# 启动命令(支持外部传入JVM参数,如 -Xms512m -Xmx1024m) +ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar $APP_HOME/$APP_NAME.jar --spring.profiles.active=$SPRING_PROFILES_ACTIVE"] diff --git a/Dockerfile/java/admin_Dockerfile b/Dockerfile/java/旧的/admin_Dockerfile similarity index 100% rename from Dockerfile/java/admin_Dockerfile rename to Dockerfile/java/旧的/admin_Dockerfile diff --git a/Dockerfile/java/agent_Dockerfile b/Dockerfile/java/旧的/agent_Dockerfile similarity index 100% rename from Dockerfile/java/agent_Dockerfile rename to Dockerfile/java/旧的/agent_Dockerfile diff --git a/Dockerfile/java/email_Dockerfile b/Dockerfile/java/旧的/email_Dockerfile similarity index 100% rename from Dockerfile/java/email_Dockerfile rename to Dockerfile/java/旧的/email_Dockerfile diff --git a/Dockerfile/java/payment_Dockerfile b/Dockerfile/java/旧的/payment_Dockerfile similarity index 100% rename from Dockerfile/java/payment_Dockerfile rename to Dockerfile/java/旧的/payment_Dockerfile