Files
jenkins-pipeline/Dockerfile/java/新的/agent_Dockerfile
2025-11-27 12:15:38 +08:00

47 lines
1.5 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.

# ---- 阶段 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"]