Files
jenkins-pipeline/Dockerfile/java/email_Dockerfile
dxin 8cadbf8ba9 +
2025-11-15 18:18:21 +08:00

71 lines
1.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# # 使用官方 Java 8 精简镜像含JDK适合运行Spring Boot等Java应用
# FROM mirror.ccs.tencentyun.com/library/openjdk:8-jdk-slim AS runtime
# # 配置环境变量(解决中文乱码、时区问题)
# ENV LANG=C.UTF-8 \
# TZ=Asia/Shanghai \
# JAVA_OPTS=""
# # 创建应用工作目录
# WORKDIR /app
# # 复制主应用JAR 和 API JAR
# COPY /start/target/start-0.0.1-SNAPSHOT.jar /app/flymoon-email.jar
# RUN chmod 755 /app/flymoon-email.jar
# # 暴露应用端口(根据实际端口修改)
# EXPOSE 4997 4998
# # 默认启动环境sit可被覆盖外部使用-e or env SPRING_PROFILES_ACTIVE=xxx覆盖
# ARG RUN_PROFILE=sit-us
# ENV SPRING_PROFILES_ACTIVE=${RUN_PROFILE}
# # 启动命令支持外部传入JVM参数如 -Xms512m -Xmx1024m
# ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app/flymoon-email.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE}"]
# ---- Stage 1: Build with Maven ----
FROM maven:3.9.6-eclipse-temurin-8 AS builder
WORKDIR /build
# 先仅复制 pom.xml 用于依赖缓存
COPY pom.xml .
# 预下载所有依赖pom 不变就不会重新下载
RUN mvn -B dependency:go-offline
# 再复制源码
COPY src ./src
# 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-slim AS runtime
WORKDIR /app
ENV LANG=C.UTF-8 \
TZ=Asia/Shanghai \
JAVA_OPTS=""
# 从构建阶段复制 JAR
COPY --from=builder /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/app.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE}"]