From a9b1fc56998834e55acc4df1c439e5d229e7662e Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 25 Jan 2026 13:23:14 +0800 Subject: [PATCH] fix: revert to v0.1.16, remove incorrect documentation --- Dockerfile | 4 +- docs/開發指南/Dockerfile-重構說明.md | 183 --------------------------- 2 files changed, 2 insertions(+), 185 deletions(-) delete mode 100644 docs/開發指南/Dockerfile-重構說明.md diff --git a/Dockerfile b/Dockerfile index 40d165b..7ec4cde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # ============================================================================== # ConvertX-CN 官方 Docker Image -# 版本:v0.1.17 - 完整重構版 +# 版本:v0.1.16 - 完整重構版 # ============================================================================== # # 📦 Image 說明: @@ -46,7 +46,7 @@ FROM debian:bookworm-slim AS base LABEL org.opencontainers.image.source="https://github.com/pi-docket/ConvertX-CN" LABEL org.opencontainers.image.description="ConvertX-CN - 完全離線化檔案轉換服務" -LABEL org.opencontainers.image.version="v0.1.17" +LABEL org.opencontainers.image.version="v0.1.16" WORKDIR /app # 設定非互動模式 diff --git a/docs/開發指南/Dockerfile-重構說明.md b/docs/開發指南/Dockerfile-重構說明.md deleted file mode 100644 index 547c4d0..0000000 --- a/docs/開發指南/Dockerfile-重構說明.md +++ /dev/null @@ -1,183 +0,0 @@ -# ConvertX-CN Dockerfile 重構說明 - -## 版本:v0.1.17 - -此次重構完全重新設計了 Docker 建構流程,以達成以下目標: - -1. **完全離線運行**:所有模型、字型在 build 階段下載完成 -2. **Multi-Arch 支援**:同時支援 linux/amd64 和 linux/arm64 -3. **可維護性**:每個安裝步驟拆分為獨立 RUN -4. **可追蹤性**:每個 stage 職責明確 - ---- - -## 🏗️ Multi-Stage Build 結構 - -| Stage | 名稱 | RUN 數量 | 說明 | -|-------|------|----------|------| -| 1 | `base` | 3 | Bun runtime 基礎環境 | -| 2 | `install` | 4 | Node.js 依賴安裝 | -| 3 | `prerelease` | 1 | 應用程式建構 | -| 4 | `system-tools` | 14 | APT 系統工具 | -| 5 | `fonts` | 4 | 系統字型 + 自訂字型 | -| 6 | `python-tools` | 9 | Python CLI 工具 | -| 7 | `models` | 7 | AI 模型下載 | -| 8 | `release` | 多個 | 最終 Image | - ---- - -## 📦 各 Stage 安裝內容 - -### Stage 4: system-tools(14 個獨立 RUN) - -| RUN | 內容 | -|-----|------| -| 4.1 | APT 配置 | -| 4.2 | 基礎系統工具(curl, git, etc.) | -| 4.3 | 核心轉換工具(ghostscript, graphicsmagick, etc.) | -| 4.4 | dasel | -| 4.5 | resvg(僅 AMD64) | -| 4.6 | deark(編譯安裝) | -| 4.7 | vtracer | -| 4.8 | FFmpeg | -| 4.9 | 圖像處理工具(ImageMagick, Inkscape, vips) | -| 4.10 | 文件處理工具(Calibre, Pandoc) | -| 4.11 | LibreOffice | -| 4.12 | TexLive 基礎 | -| 4.13 | TexLive 語言包 | -| 4.14 | Tesseract OCR | - -### Stage 5: fonts(4 個獨立 RUN) - -| RUN | 內容 | -|-----|------| -| 5.1 | 系統字型(Noto CJK, Liberation 等) | -| 5.2 | 複製自訂字型 | -| 5.3 | 設定 BabelDOC 字型目錄 | -| 5.4 | 更新字型快取 | - -### Stage 6: python-tools(9 個獨立 RUN) - -| RUN | 內容 | -|-----|------| -| 6.1 | Python 基礎環境 | -| 6.2 | uv 套件管理器 | -| 6.3 | huggingface_hub | -| 6.4 | endesive(PDF 簽章) | -| 6.5 | markitdown | -| 6.6 | pdf2zh(PDFMathTranslate) | -| 6.7 | babeldoc | -| 6.8 | MinerU(僅 AMD64) | -| 6.9 | tiktoken | - -### Stage 7: models(7 個獨立 RUN) - -| RUN | 內容 | -|-----|------| -| 7.1 | 創建目錄結構 | -| 7.2 | 複製預下載的 ONNX 模型 | -| 7.3 | 下載 MinerU Pipeline 模型(僅 AMD64) | -| 7.4 | 產生 MinerU 配置檔 | -| 7.5 | BabelDOC warmup | -| 7.6 | 下載 tiktoken 編碼 | -| 7.7 | 清理下載快取 | - ---- - -## 📁 模型目錄結構 - -``` -/opt/convertx/ -├── models/ -│ └── mineru/ -│ └── PDF-Extract-Kit-1.0/ -└── mineru.json - -/root/.cache/babeldoc/ -├── models/ -│ └── doclayout_yolo_docstructbench_imgsz1024.onnx -├── fonts/ -├── cmap/ -└── tiktoken/ -``` - ---- - -## 🌍 Multi-Arch 處理 - -### AMD64(完整功能) - -所有工具和模型都必須正確安裝,任何失敗都會導致 build 失敗。 - -### ARM64(安全降級) - -以下功能會被跳過,但 build 不會失敗: - -| 工具/模型 | 原因 | Log 訊息 | -|-----------|------|----------| -| resvg | 無 ARM64 預編譯版本 | `⚠️ resvg 無 ARM64 版本,跳過` | -| MinerU | 依賴僅支援 x86_64 | `⚠️ ARM64:MinerU 不支援,跳過安裝` | -| MinerU 模型 | 跟隨 MinerU | `⚠️ ARM64:跳過 MinerU 模型下載` | - ---- - -## 🔒 離線模式環境變數 - -```bash -# HuggingFace 完全離線 -HF_HOME="/nonexistent" -HF_HUB_OFFLINE="1" -TRANSFORMERS_OFFLINE="1" -HF_DATASETS_OFFLINE="1" - -# MinerU 強制本地模型 -MINERU_MODEL_SOURCE="local" -MINERU_CONFIG="/root/mineru.json" -MINERU_MODELS_DIR="/opt/convertx/models/mineru" - -# BabelDOC 離線模式 -BABELDOC_OFFLINE="1" -BABELDOC_CACHE_PATH="/root/.cache/babeldoc" - -# 禁止 pip 安裝 -PIP_NO_INDEX="1" -``` - ---- - -## 🔧 Build 指令 - -### 單架構 build(本機測試) -```bash -docker build -t convertx-cn:latest . -``` - -### Multi-arch build(推送到 Docker Hub) -```bash -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - --tag convertx/convertx-cn:latest \ - --push . -``` - ---- - -## 📊 預估 Image 大小 - -| 架構 | 大小 | -|------|------| -| AMD64 | 10-14 GB | -| ARM64 | 6-8 GB(無 MinerU 模型)| - ---- - -## ✅ 驗證方式 - -### Build 時驗證 -Dockerfile 最後階段會自動執行驗證,失敗會中止 build。 - -### Runtime 驗證 -```bash -docker exec /app/scripts/verify-models.sh -docker exec /app/scripts/verify-installation.sh -```