trace/Dockerfile
Lee 4bff3b8a2f
Some checks failed
Java Maven 3.9.9 & JDK 26 CI/CD Pipeline / build-and-deploy (push) Failing after 1m9s
迁移 TraceCD 部署到 HK-1
2026-08-19 17:57:55 +08:00

32 lines
1.5 KiB
Docker

# === 第一阶段:使用 Maven 3.9.9 + JDK 26 进行编译打包 ===
FROM maven:3.9.16-eclipse-temurin-26 AS builder
WORKDIR /app
# 1C/1G 部署机上限制 Maven 峰值内存,避免构建挤占运行中的服务。
ENV MAVEN_OPTS="-Xms64m -Xmx384m -XX:+UseSerialGC"
# 1. 配置阿里云 Maven 镜像加速下载(可选,国内服务器强烈推荐)
RUN mkdir -p /root/.m2
RUN echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"><mirrors><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors></settings>' > /root/.m2/settings.xml
# 2. 复制源码并编译
COPY pom.xml .
COPY src ./src
# 执行打包,跳过单元测试以加快 CI/CD 速度
RUN mvn clean package -DskipTests
# === 第二阶段:使用轻量级 JDK 26 运行时镜像 ===
FROM eclipse-temurin:26-jre
WORKDIR /app
# 从第一阶段的 builder 中,把生成的 jar 包复制过来
# (请确保你的 pom.xml 最终打包出来的名字能匹配上,或者可以写死特定的 jar 包名)
COPY --from=builder /app/target/*.jar app.jar
# 暴露端口(根据你的 Spring Boot 实际端口调整)
EXPOSE 8080
# 针对 JDK 26 优化的启动命令(默认开启一些现代 GC 特性)
ENTRYPOINT ["java", "-jar", "app.jar"]