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:
Your Name 2026-01-20 12:46:49 +08:00
parent 569c572e62
commit f675a68d87
5 changed files with 393 additions and 19 deletions

View file

@ -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

View file

@ -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、德文、法文
# ✅ OCR7 種主要語言
# ✅ 字型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
View 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 | 中 |
#
# ==============================================================================

View file

@ -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/*
```
---

View file

@ -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",