50 lines
1.4 KiB
Plaintext
50 lines
1.4 KiB
Plaintext
# 第一阶段:使用 Maven + Java8 构建 JAR 包
|
|
FROM maven:3.9.2-eclipse-temurin-8-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# 添加国内 Maven 镜像源
|
|
RUN mkdir -p /root/.m2 && \
|
|
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>aliyun</id> \
|
|
<mirrorOf>*</mirrorOf> \
|
|
<name>aliyun maven</name> \
|
|
<url>https://maven.aliyun.com/repository/public</url> \
|
|
</mirror> \
|
|
</mirrors> \
|
|
</settings>' > /root/.m2/settings.xml
|
|
|
|
# 复制项目代码
|
|
COPY pom.xml .
|
|
COPY sa-admin ./sa-admin
|
|
COPY sa-common ./sa-common
|
|
|
|
# 构建项目
|
|
RUN mvn clean package -Dmaven.test.skip=true -P prod
|
|
|
|
# 第二阶段:使用更小的 Java8 JDK 镜像运行
|
|
FROM eclipse-temurin:8-jdk-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# ✅ 安装字体 & libgcc 等依赖
|
|
RUN apk add --no-cache \
|
|
libstdc++ \
|
|
libgcc \
|
|
fontconfig \
|
|
freetype \
|
|
ttf-dejavu
|
|
|
|
# 复制构建产物
|
|
COPY --from=builder /app/sa-admin/target/*.jar app.jar
|
|
|
|
# 暴露端口(请替换成你实际应用端口)
|
|
EXPOSE 5477
|
|
|
|
# 启动应用
|
|
ENTRYPOINT ["java", "-Duser.timezone=Asia/Shanghai", "-jar", "app.jar"] |