feat(docker): 重組 Docker 架構 v0.1.6
- 優化 Dockerfile 註解與標頭 - 新增 Dockerfile.full 擴充範本 (FROM convertx-cn:latest) - 依地區分類 65+ OCR 語言 - 額外字型/TexLive 套件選項 - 每個區塊含預估大小說明 - 更新 docker.md 雙 Image 說明文件 - 版本更新至 0.1.6
This commit is contained in:
parent
569c572e62
commit
f675a68d87
5 changed files with 393 additions and 19 deletions
27
CHANGELOG.md
27
CHANGELOG.md
|
|
@ -1,5 +1,32 @@
|
|||
# Changelog
|
||||
|
||||
## [0.1.6](https://github.com/pi-docket/ConvertX-CN/releases/tag/v0.1.6) (2026-01-20)
|
||||
|
||||
### Features
|
||||
|
||||
- **Docker 架構**: 整理並優化官方 Dockerfile
|
||||
- 更新 Dockerfile 註解與文件說明
|
||||
- 新增 Dockerfile.full 完整版範本
|
||||
- **Dockerfile.full**: 進階使用者自行 build 的完整範本
|
||||
- 包含 65 種 OCR 語言(預設關閉)
|
||||
- 包含完整 TexLive 選項(預設關閉)
|
||||
- 包含額外字型套件(預設關閉)
|
||||
- 所有進階功能以註解方式提供,使用者自行選擇
|
||||
|
||||
### Docs
|
||||
|
||||
- 更新 docs/docker.md
|
||||
- 說明官方 Image vs 完整版差異
|
||||
- 新增自訂 Build 指南
|
||||
- 新增可選功能大小說明
|
||||
|
||||
### Optimization
|
||||
|
||||
- 優化 Dockerfile 結構與註解
|
||||
- 清楚標示哪些功能未內建於官方 Image
|
||||
|
||||
---
|
||||
|
||||
## [0.1.5](https://github.com/pi-docket/ConvertX-CN/releases/tag/v0.1.5) (2026-01-20)
|
||||
|
||||
### Features
|
||||
|
|
|
|||
41
Dockerfile
41
Dockerfile
|
|
@ -1,8 +1,24 @@
|
|||
# ==============================================================================
|
||||
# ConvertX-CN 精簡版 Dockerfile
|
||||
# 優化版本:移除 texlive-full,精簡字型與語言支援
|
||||
# 目標:在 GitHub Actions 中穩定建構(解決 no space left on device)
|
||||
# 支援語言:中文(繁/簡)、日文、韓文、英文、德文、法文
|
||||
# ConvertX-CN 官方 Docker Image
|
||||
# 版本:v0.1.6
|
||||
# ==============================================================================
|
||||
#
|
||||
# 📦 Image 說明:
|
||||
# - 這是 ConvertX-CN 官方 Docker Hub Image 的生產 Dockerfile
|
||||
# - 目標:在功能完整性與 image 體積間取得平衡
|
||||
# - 適合一般使用者日常文件轉換需求
|
||||
#
|
||||
# 🌍 內建語言支援:
|
||||
# - OCR: 英文、繁體中文、簡體中文、日文、韓文、德文、法文
|
||||
# - Locale: en_US, zh_TW, zh_CN, ja_JP, ko_KR, de_DE, fr_FR
|
||||
# - 字型: Noto CJK, Liberation, 自訂中文字型
|
||||
#
|
||||
# 📊 Image 大小:約 4-6 GB
|
||||
#
|
||||
# 💡 如需完整 65 種 OCR 語言或進階功能,請參考:
|
||||
# - Dockerfile.full (完整版,使用者自行 build)
|
||||
# - 文件:docs/docker.md
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
FROM debian:trixie-slim AS base
|
||||
|
|
@ -53,9 +69,19 @@ RUN bun run build
|
|||
FROM base AS release
|
||||
|
||||
# ==============================================================================
|
||||
# 精簡依賴安裝(單一 RUN 層,優化 cache 與空間)
|
||||
# ❌ 已移除:texlive-full, fonts-noto-extra, 多餘語言包
|
||||
# ✅ 保留:核心轉換工具 + 最小 TexLive + 必要字型
|
||||
# 依賴安裝(單一 RUN 層,優化 cache 與空間)
|
||||
# ==============================================================================
|
||||
#
|
||||
# ✅ 核心轉換工具:完整保留
|
||||
# ✅ TexLive:最小集合(支援 CJK、德文、法文)
|
||||
# ✅ OCR:7 種主要語言
|
||||
# ✅ 字型:Noto CJK + Liberation
|
||||
#
|
||||
# ❌ 未內建(體積過大,請參考 Dockerfile.full):
|
||||
# - texlive-full(約 +3GB)
|
||||
# - 65 種 OCR 語言(約 +2GB)
|
||||
# - fonts-noto-extra(約 +500MB)
|
||||
#
|
||||
# ==============================================================================
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# === 基礎轉換工具 ===
|
||||
|
|
@ -117,7 +143,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||
tesseract-ocr-deu \
|
||||
tesseract-ocr-fra \
|
||||
# === 字型(精簡版)===
|
||||
#fonts-noto-cjk
|
||||
# fonts-noto-core: Noto Sans/Serif Latin(歐語基礎)
|
||||
# fonts-noto-color-emoji: Emoji 支援(僅此一套)
|
||||
# fonts-liberation: Liberation 字型(Arial/Times 替代)
|
||||
|
|
|
|||
253
Dockerfile.full
Normal file
253
Dockerfile.full
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
# ==============================================================================
|
||||
# ConvertX-CN Full 擴充版 Dockerfile
|
||||
# 版本:v0.1.6
|
||||
# ==============================================================================
|
||||
#
|
||||
# ⚠️ 重要說明:
|
||||
# 此 Dockerfile 必須基於 ConvertX-CN 官方 Image
|
||||
# 用途:為進階使用者提供擴充功能的範本
|
||||
#
|
||||
# 📦 使用方式:
|
||||
# 1. 確保已有 convertx/convertx-cn:latest 或自行 build
|
||||
# 2. 取消註解需要的功能區塊
|
||||
# 3. 執行:docker build -f Dockerfile.full -t convertx-cn-full .
|
||||
#
|
||||
# ⚠️ 風險提示:
|
||||
# - 每個擴充功能都會增加 Image 大小
|
||||
# - 全部啟用可能使 Image 超過 10GB
|
||||
# - 請依實際需求選擇性啟用
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
# 基於 ConvertX-CN 官方 Image
|
||||
FROM convertx/convertx-cn:latest
|
||||
|
||||
# ==============================================================================
|
||||
# 📚 完整 TexLive(約 +3GB)
|
||||
# ==============================================================================
|
||||
# 說明:完整 LaTeX 支援,適合需要特殊 LaTeX 套件的使用者
|
||||
# 風險:Image 體積大幅增加
|
||||
# ------------------------------------------------------------------------------
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# texlive-full \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ==============================================================================
|
||||
# 🔤 OCR 語言擴充(按地區分類)
|
||||
# ==============================================================================
|
||||
#
|
||||
# 📊 預估大小:
|
||||
# - 每個語言包:5-50MB
|
||||
# - 全部語言:約 +2GB
|
||||
#
|
||||
# 💡 建議:僅安裝實際需要的語言
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# --- 歐洲語言(西歐)---
|
||||
# 約 +150MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-spa \
|
||||
# tesseract-ocr-ita \
|
||||
# tesseract-ocr-por \
|
||||
# tesseract-ocr-nld \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 歐洲語言(北歐)---
|
||||
# 約 +100MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-swe \
|
||||
# tesseract-ocr-dan \
|
||||
# tesseract-ocr-nor \
|
||||
# tesseract-ocr-fin \
|
||||
# tesseract-ocr-isl \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 歐洲語言(東歐/斯拉夫)---
|
||||
# 約 +200MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-pol \
|
||||
# tesseract-ocr-rus \
|
||||
# tesseract-ocr-ukr \
|
||||
# tesseract-ocr-ces \
|
||||
# tesseract-ocr-slk \
|
||||
# tesseract-ocr-hun \
|
||||
# tesseract-ocr-ron \
|
||||
# tesseract-ocr-bul \
|
||||
# tesseract-ocr-hrv \
|
||||
# tesseract-ocr-srp \
|
||||
# tesseract-ocr-slv \
|
||||
# tesseract-ocr-lit \
|
||||
# tesseract-ocr-lav \
|
||||
# tesseract-ocr-est \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 歐洲語言(其他)---
|
||||
# 約 +80MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-ell \
|
||||
# tesseract-ocr-tur \
|
||||
# tesseract-ocr-cat \
|
||||
# tesseract-ocr-eus \
|
||||
# tesseract-ocr-glg \
|
||||
# tesseract-ocr-gle \
|
||||
# tesseract-ocr-cym \
|
||||
# tesseract-ocr-mlt \
|
||||
# tesseract-ocr-mkd \
|
||||
# tesseract-ocr-sqi \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 中東語言 ---
|
||||
# 約 +100MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-ara \
|
||||
# tesseract-ocr-heb \
|
||||
# tesseract-ocr-fas \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 南亞語言 ---
|
||||
# 約 +200MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-hin \
|
||||
# tesseract-ocr-ben \
|
||||
# tesseract-ocr-tam \
|
||||
# tesseract-ocr-tel \
|
||||
# tesseract-ocr-kan \
|
||||
# tesseract-ocr-mal \
|
||||
# tesseract-ocr-mar \
|
||||
# tesseract-ocr-guj \
|
||||
# tesseract-ocr-pan \
|
||||
# tesseract-ocr-sin \
|
||||
# tesseract-ocr-nep \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 東南亞語言 ---
|
||||
# 約 +100MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-tha \
|
||||
# tesseract-ocr-vie \
|
||||
# tesseract-ocr-ind \
|
||||
# tesseract-ocr-msa \
|
||||
# tesseract-ocr-fil \
|
||||
# tesseract-ocr-mya \
|
||||
# tesseract-ocr-khm \
|
||||
# tesseract-ocr-lao \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 非洲語言 ---
|
||||
# 約 +50MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-afr \
|
||||
# tesseract-ocr-swa \
|
||||
# tesseract-ocr-amh \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# 🌍 一鍵安裝所有 OCR 語言(約 +2GB)
|
||||
# ⚠️ 警告:這會顯著增加 Image 大小與 build 時間
|
||||
# ------------------------------------------------------------------------------
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# tesseract-ocr-all \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ==============================================================================
|
||||
# 🔤 額外字型套件
|
||||
# ==============================================================================
|
||||
|
||||
# --- Noto 完整字型集(約 +500MB)---
|
||||
# 包含全球所有語言的 Noto 字型
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# fonts-noto-extra \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 阿拉伯語/希伯來語字型 ---
|
||||
# 約 +50MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# fonts-noto-ui-core \
|
||||
# fonts-arabeyes \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 印度語系字型 ---
|
||||
# 約 +100MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# fonts-indic \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 泰文字型 ---
|
||||
# 約 +20MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# fonts-thai-tlwg \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ==============================================================================
|
||||
# 📚 額外 TexLive 語言包
|
||||
# ==============================================================================
|
||||
|
||||
# --- 更多歐洲語言 LaTeX 支援 ---
|
||||
# 約 +300MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# texlive-lang-spanish \
|
||||
# texlive-lang-italian \
|
||||
# texlive-lang-portuguese \
|
||||
# texlive-lang-polish \
|
||||
# texlive-lang-cyrillic \
|
||||
# texlive-lang-greek \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 阿拉伯語/希伯來語 LaTeX 支援 ---
|
||||
# 約 +150MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# texlive-lang-arabic \
|
||||
# texlive-lang-other \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ==============================================================================
|
||||
# 🔧 進階轉換工具
|
||||
# ==============================================================================
|
||||
|
||||
# --- OpenCV(電腦視覺相關轉換)---
|
||||
# 約 +200MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# python3-opencv \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- 額外影片編解碼器 ---
|
||||
# 約 +50MB
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# libavcodec-extra \
|
||||
# && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ==============================================================================
|
||||
# 🌐 額外 Locale 設定
|
||||
# ==============================================================================
|
||||
# 如需更多語言的 locale 支援,取消以下註解
|
||||
# ------------------------------------------------------------------------------
|
||||
# RUN sed -i 's/# es_ES.UTF-8 UTF-8/es_ES.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
# sed -i 's/# it_IT.UTF-8 UTF-8/it_IT.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
# sed -i 's/# pt_BR.UTF-8 UTF-8/pt_BR.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
# sed -i 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
# sed -i 's/# ar_SA.UTF-8 UTF-8/ar_SA.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
# sed -i 's/# th_TH.UTF-8 UTF-8/th_TH.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
# sed -i 's/# vi_VN.UTF-8 UTF-8/vi_VN.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
# locale-gen
|
||||
|
||||
# ==============================================================================
|
||||
# 📋 擴充功能總覽
|
||||
# ==============================================================================
|
||||
#
|
||||
# | 功能 | 預估大小 | 風險等級 |
|
||||
# |-------------------------|----------|----------|
|
||||
# | 完整 TexLive | +3GB | 高 |
|
||||
# | 全部 OCR 語言 | +2GB | 高 |
|
||||
# | 歐洲 OCR(西歐) | +150MB | 低 |
|
||||
# | 歐洲 OCR(北歐) | +100MB | 低 |
|
||||
# | 歐洲 OCR(東歐) | +200MB | 中 |
|
||||
# | 中東 OCR | +100MB | 低 |
|
||||
# | 南亞 OCR | +200MB | 中 |
|
||||
# | 東南亞 OCR | +100MB | 低 |
|
||||
# | 非洲 OCR | +50MB | 低 |
|
||||
# | Noto Extra 字型 | +500MB | 中 |
|
||||
# | 印度語系字型 | +100MB | 低 |
|
||||
# | 額外 TexLive 語言 | +300MB | 中 |
|
||||
# | OpenCV | +200MB | 中 |
|
||||
#
|
||||
# ==============================================================================
|
||||
|
|
@ -1,20 +1,89 @@
|
|||
# Docker 配置指南
|
||||
|
||||
## Docker Image
|
||||
## Docker Image 版本說明
|
||||
|
||||
ConvertX-CN 提供預建的 Docker Image,包含所有轉換依賴。
|
||||
ConvertX-CN 提供兩種 Docker Image 選項:
|
||||
|
||||
### 可用 Tag
|
||||
### 1. 官方 Image(推薦)
|
||||
|
||||
從 Docker Hub 拉取的預建 Image,適合大多數使用者。
|
||||
|
||||
| Tag | 說明 |
|
||||
| ---------------------------------- | ------------------------ |
|
||||
| ----------------------------- | ---------- |
|
||||
| `convertx/convertx-cn:latest` | 最新穩定版 |
|
||||
| `convertx/convertx-cn:v0.1.5` | 指定版本號 |
|
||||
| `convertx/convertx-cn:v0.1.5-FULL` | 完整版(與 latest 相同) |
|
||||
| `convertx/convertx-cn:v0.1.6` | 指定版本號 |
|
||||
|
||||
### Image 大小
|
||||
**內建功能:**
|
||||
|
||||
由於內建完整依賴(LibreOffice、TexLive、FFmpeg 等),Image 約 **4-6 GB**。
|
||||
- ✅ 核心轉換工具(FFmpeg、LibreOffice、ImageMagick 等)
|
||||
- ✅ OCR 支援:英文、繁/簡中文、日文、韓文、德文、法文
|
||||
- ✅ 字型:Noto CJK、Liberation、自訂中文字型
|
||||
- ✅ TexLive 最小集合(支援 CJK/德/法)
|
||||
|
||||
**Image 大小:約 4-6 GB**
|
||||
|
||||
### 2. 完整版(自行 Build)
|
||||
|
||||
使用 `Dockerfile.full` 自行建構,適合需要:
|
||||
|
||||
- 65 種 OCR 語言
|
||||
- 完整 TexLive
|
||||
- 額外字型套件
|
||||
|
||||
**⚠️ 注意事項:**
|
||||
|
||||
- Image 大小可能超過 **10GB**
|
||||
- Build 時間約 **30-60 分鐘**
|
||||
- 需要自行維護更新
|
||||
|
||||
```bash
|
||||
# 自行建構完整版
|
||||
docker build -f Dockerfile.full -t convertx-cn-full .
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 自訂 Build 指南(進階使用者)
|
||||
|
||||
如果官方 Image 不符合需求,可以使用 `Dockerfile.full` 自行建構:
|
||||
|
||||
### 步驟
|
||||
|
||||
1. **複製 Dockerfile.full**
|
||||
|
||||
```bash
|
||||
cp Dockerfile.full Dockerfile.custom
|
||||
```
|
||||
|
||||
2. **取消註解需要的功能**
|
||||
- 編輯 `Dockerfile.custom`
|
||||
- 找到需要的功能區塊
|
||||
- 移除 `#` 註解符號
|
||||
|
||||
3. **建構 Image**
|
||||
```bash
|
||||
docker build -f Dockerfile.custom -t convertx-cn-custom .
|
||||
```
|
||||
|
||||
### 可選功能
|
||||
|
||||
| 功能 | 預估大小 | 說明 |
|
||||
| --------------- | -------- | ---------------- |
|
||||
| 完整 TexLive | +3GB | 完整 LaTeX 支援 |
|
||||
| 全部 OCR 語言 | +2GB | 65 種語言辨識 |
|
||||
| Noto Extra 字型 | +500MB | 全球語言字型 |
|
||||
| 歐洲 OCR 語言 | +200MB | 25 種歐洲語言 |
|
||||
| 中東/南亞 OCR | +150MB | 阿拉伯、印度語系 |
|
||||
| 東南亞 OCR | +100MB | 泰、越、印尼等 |
|
||||
|
||||
### 範例:僅加入西班牙文 OCR
|
||||
|
||||
```dockerfile
|
||||
# 在 Dockerfile.full 中取消以下註解:
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
tesseract-ocr-spa \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "convertx-frontend",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.6",
|
||||
"scripts": {
|
||||
"dev": "bun run --watch src/index.tsx",
|
||||
"hot": "bun run --hot src/index.tsx",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue