新增加私服构建的dockerfile

This commit is contained in:
dxin
2025-11-27 12:15:38 +08:00
parent 1f1f6c17a6
commit eb5259d613
8 changed files with 182 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
# 使用官方 Java 21 精简镜像含JDK适合运行Spring Boot等Java应用
FROM mirror.ccs.tencentyun.com/library/openjdk:21-jdk-slim AS runtime
# 配置环境变量(解决中文乱码、时区问题)
ENV LANG=C.UTF-8 \
TZ=Asia/Shanghai \
JAVA_OPTS=""
# 创建应用工作目录
WORKDIR /app
# 复制主应用JAR 和 API JAR
COPY target/flymoon-admin.jar /app/flymoon-admin.jar
# 暴露应用端口根据实际端口修改如8070、9090等
EXPOSE 8080
# 默认启动环境sit可被覆盖外部使用-e or env SPRING_PROFILES_ACTIVE=xxx覆盖
ARG RUN_PROFILE=sit
ENV SPRING_PROFILES_ACTIVE=${RUN_PROFILE}
# 启动命令支持外部传入JVM参数如 -Xms512m -Xmx1024m
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app/flymoon-admin.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE}"]

View File

@@ -0,0 +1,25 @@
# 使用官方 Java 21 精简镜像含JDK适合运行Spring Boot等Java应用
FROM mirror.ccs.tencentyun.com/library/openjdk:21-jdk-slim AS runtime
# 配置环境变量(解决中文乱码、时区问题)
ENV LANG=C.UTF-8 \
TZ=Asia/Shanghai \
JAVA_OPTS=""
# 创建应用工作目录
WORKDIR /app
# 复制主应用JAR 和 API JAR
COPY flymoon-agent-provider/target/flymoon-agent.jar /app/flymoon-agent.jar
COPY flymoon-agent-api/target/flymoon-agent-api.jar /app/flymoon-agent-api.jar
# 暴露应用端口根据实际端口修改如8070、9090等
EXPOSE 8070
# 默认启动环境sit可被覆盖外部使用-e or env SPRING_PROFILES_ACTIVE=xxx覆盖
ARG RUN_PROFILE=sit
ENV SPRING_PROFILES_ACTIVE=${RUN_PROFILE}
# 启动命令支持外部传入JVM参数如 -Xms512m -Xmx1024m
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app/flymoon-agent.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE}"]

View File

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

View File

@@ -0,0 +1,25 @@
# 使用官方 Java 21 精简镜像含JDK适合运行Spring Boot等Java应用
FROM mirror.ccs.tencentyun.com/library/openjdk:21-jdk-slim AS runtime
# 配置环境变量(解决中文乱码、时区问题)
ENV LANG=C.UTF-8 \
TZ=Asia/Shanghai \
JAVA_OPTS=""
# 创建应用工作目录
WORKDIR /app
# 复制主应用JAR 和 API JAR
COPY flymoon-payment-provider/target/flymoon-payment.jar /app/flymoon-payment.jar
COPY flymoon-payment-api/target/flymoon-payment-api.jar /app/flymoon-payment-api.jar
# 暴露应用端口根据实际端口修改如8080、9090等
EXPOSE 8090
# 默认启动环境sit可被覆盖外部使用-e or env SPRING_PROFILES_ACTIVE=xxx覆盖
ARG RUN_PROFILE=sit
ENV SPRING_PROFILES_ACTIVE=${RUN_PROFILE}
# 启动命令支持外部传入JVM参数如 -Xms512m -Xmx1024m
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app/flymoon-payment.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE}"]