This commit is contained in:
2025-11-11 18:18:35 +08:00
parent 981b2fefba
commit dda1a4935a
2 changed files with 15 additions and 84 deletions

View File

@@ -5,19 +5,17 @@ FROM docker.aipper.de/eclipse-temurin:8-jre-alpine AS base
# 设置维护者信息
LABEL maintainer="digital-archive-team"
# 使用阿里云镜像源并安装基础包
# 使用阿里云镜像源并安装最小基础包
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
apk add --no-cache \
ca-certificates \
curl \
bash \
ttf-dejavu \
fontconfig \
tini \
&& rm -rf /var/cache/apk/*
# ===== Maven 构建阶段 =====
# 使用更小的Alpine Maven镜像进行构建
FROM docker.aipper.de/maven:3.9.9-eclipse-temurin-8-focal AS builder
FROM docker.aipper.de/maven:3.9.9-eclipse-temurin-8-alpine AS builder
# 设置工作目录
WORKDIR /build
@@ -111,7 +109,10 @@ RUN echo "=== 验证Maven环境 ===" && \
RUN echo "=== 开始构建应用 ===" && \
mvn clean package -DskipTests -B -s /root/.m2/settings.xml -e \
-Dmaven.test.skip=true \
-Dmaven.compiler.optimize=true
-Dmaven.compiler.optimize=true \
&& \
echo "=== 清理Maven缓存减少镜像大小 ===" && \
rm -rf /root/.m2/repository
# 检查构建结果并复制正确的JAR文件
RUN echo "=== 检查构建结果 ===" && \
@@ -121,14 +122,16 @@ RUN echo "=== 检查构建结果 ===" && \
echo "=== 复制正确的 JAR 文件 ===" && \
cp /build/target/*.jar /build/app.jar && \
ls -la /build/app.jar && \
echo "JAR 文件大小: $(du -h /build/app.jar | cut -f1)"
echo "JAR 文件大小: $(du -h /build/app.jar | cut -f1)" && \
echo "=== 清理构建临时文件 ===" && \
rm -rf /build/src /build/pom.xml /build/target /tmp/local-jars
# ===== 运行阶段 =====
# 复用基础镜像,避免重复安装依赖
FROM base
# 设置环境变量
ENV JAVA_OPTS="-Xmx1g -Xms512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Djava.awt.headless=true -XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0"
# 设置环境变量(优化内存使用)
ENV JAVA_OPTS="-Xmx512m -Xms256m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Djava.awt.headless=true -XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0"
ENV SPRING_PROFILES_ACTIVE=prod
# 创建应用用户和目录
@@ -165,5 +168,6 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
# 暴露端口
EXPOSE 9081
# 启动应用
# 使用tini作为init进程正确处理信号
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]