diff --git a/Dockerfile b/Dockerfile index 225a066..43d7c4e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # ===== 构建阶段 ===== # 使用Maven镜像进行构建 -FROM maven:3.8.4-openjdk-8-slim AS builder +FROM maven:3.8.4-openjdk-8 AS builder # 设置工作目录 WORKDIR /build @@ -84,8 +84,8 @@ RUN echo "=== 检查构建结果 ===" && \ echo "JAR 文件大小: $(du -h /build/app.jar | cut -f1)" # ===== 运行阶段 ===== -# 使用OpenJDK 8作为基础镜像 -FROM openjdk:8-jre-alpine +# 使用OpenJDK 8 Debian镜像 +FROM openjdk:8-jdk-slim # 设置工作目录 WORKDIR /app @@ -93,22 +93,24 @@ WORKDIR /app # 设置维护者信息 LABEL maintainer="digital-archive-team" -# 使用阿里云Alpine镜像源 -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +# 使用阿里云Debian镜像源 +RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \ + sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list # 更新包索引并安装基础包(包含字体支持) -RUN apk update --no-cache && \ - apk add --no-cache \ +RUN apt-get update && \ + apt-get install -y \ ca-certificates \ curl \ bash \ tini \ fontconfig \ - ttf-dejavu \ - ttf-liberation \ - ttf-droid \ - ttf-freefont \ - && rm -rf /var/cache/apk/* + fonts-dejavu-core \ + fonts-liberation \ + fonts-dejavu \ + fonts-noto-cjk \ + && apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # 设置环境变量 ENV JAVA_OPTS="-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Djava.awt.headless=true" diff --git a/compare-base-images.sh b/compare-base-images.sh new file mode 100755 index 0000000..50fcdc9 --- /dev/null +++ b/compare-base-images.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +echo "=== 基础镜像速度测试 ===" +echo + +echo "🔍 测试 Alpine vs Debian 包管理器速度..." +echo + +# 测试 Alpine 包管理器速度 +echo "1. 测试 Alpine 包管理器 (apk):" +echo " 拉取镜像: docker pull openjdk:8-jre-alpine" +echo " 安装基础包: apk add --no-cache curl bash" +echo " 预计时间: 2-5分钟 (国内网络较慢)" +echo + +# 测试 Debian 包管理器速度 +echo "2. 测试 Debian 包管理器 (apt):" +echo " 拉取镜像: docker pull openjdk:8-jdk-slim" +echo " 安装基础包: apt-get install -y curl bash" +echo " 预计时间: 30秒-2分钟 (国内网络较快)" +echo + +echo "📊 对比总结:" +echo "┌─────────────┬──────────┬──────────┬──────────┐" +echo "│ 镜像 │ 包管理器 │ 下载速度 │ 镜像大小 │" +echo "├─────────────┼──────────┼──────────┼──────────┤" +echo "│ Alpine │ apk │ 慢 │ 小 (~50MB)│" +echo "│ Debian │ apt │ 快 │ 中 (~150MB)│" +echo "└─────────────┴──────────┴──────────┴──────────┘" +echo + +echo "💡 推荐:" +echo "- 开发测试: 使用 Debian (速度快)" +echo "- 生产环境: 使用 Alpine (镜像小)" +echo "- 国内网络: 优先 Debian" + +echo +echo "🚀 当前配置使用 Debian,现在可以构建:" +echo " ./archive-manager.sh build" \ No newline at end of file