diff --git a/src/Dockerfile b/src/Dockerfile index 3f2feb4..3abcaca 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -23,44 +23,8 @@ RUN dotnet build HtmlToPdfService.sln -c Release --no-restore # 发布 RUN dotnet publish HtmlToPdfService.Api/HtmlToPdfService.Api.csproj -c Release -o /app/publish --no-build -# 运行时阶段 -FROM 192.168.195.25:19900/library/dotnet/aspnet:9.0 AS runtime - -# 安装 Chromium 依赖 -RUN apt-get update && apt-get install -y \ - # Chromium 依赖 - libnss3 \ - libnspr4 \ - libatk1.0-0 \ - libatk-bridge2.0-0 \ - libcups2 \ - libdrm2 \ - libdbus-1-3 \ - libxkbcommon0 \ - libx11-6 \ - libxcomposite1 \ - libxdamage1 \ - libxext6 \ - libxfixes3 \ - libxrandr2 \ - libgbm1 \ - libpango-1.0-0 \ - libcairo2 \ - libasound2 \ - libatspi2.0-0 \ - # 字体支持 - fonts-liberation \ - fonts-noto-cjk \ - fonts-noto-cjk-extra \ - fonts-noto-color-emoji \ - fonts-dejavu-core \ - fonts-freefont-ttf \ - fontconfig \ - # 工具 - wget \ - ca-certificates \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* +# 运行时阶段(使用预装了 Chromium 依赖和字体的基础镜像) +FROM 192.168.195.25:19900/htmltopdf/base:9.0 AS runtime # 创建应用目录 WORKDIR /app diff --git a/src/Dockerfile.base b/src/Dockerfile.base new file mode 100644 index 0000000..d1fec3b --- /dev/null +++ b/src/Dockerfile.base @@ -0,0 +1,43 @@ +# 基础运行时镜像:预装 Chromium 依赖和 CJK 字体 +# 构建一次,推送到 Harbor,后续 CI 直接复用 +# +# 构建命令(在外网机器上执行): +# docker build -f Dockerfile.base -t 192.168.195.25:19900/htmltopdf/base:9.0 . +# docker push 192.168.195.25:19900/htmltopdf/base:9.0 + +FROM 192.168.195.25:19900/library/dotnet/aspnet:9.0 + +RUN apt-get update && apt-get install -y \ + # Chromium 依赖 + libnss3 \ + libnspr4 \ + libatk1.0-0 \ + libatk-bridge2.0-0 \ + libcups2 \ + libdrm2 \ + libdbus-1-3 \ + libxkbcommon0 \ + libx11-6 \ + libxcomposite1 \ + libxdamage1 \ + libxext6 \ + libxfixes3 \ + libxrandr2 \ + libgbm1 \ + libpango-1.0-0 \ + libcairo2 \ + libasound2 \ + libatspi2.0-0 \ + # 字体支持 + fonts-liberation \ + fonts-noto-cjk \ + fonts-noto-cjk-extra \ + fonts-noto-color-emoji \ + fonts-dejavu-core \ + fonts-freefont-ttf \ + fontconfig \ + # 工具 + wget \ + ca-certificates \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/*