Files
jenkins-pipeline/Dockerfile/java/新的/admin_Dockerfile

46 lines
1.3 KiB
Plaintext
Raw Normal View History

2025-11-27 12:15:38 +08:00
# ---- 阶段 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"]