convertor/docs/部署指南/Docker.md
Your Name a06df23b1d feat: 新增 OCRmyPDF 轉換引擎 (v0.1.14)
## 新功能
- OCRmyPDF 轉換引擎:將掃描版 PDF 轉換為可搜尋 PDF
  - 支援 7 種語言:en, zh-TW, zh, ja, ko, de, fr
  - 與 PDFMathTranslate 風格一致的 UI 格式 (pdf-<lang>)
  - 自動偵測頁面方向並旋轉
  - 自動校正傾斜
  - 跳過已有文字層的頁面
  - 詳細的 5 階段處理進度輸出

## 建置
- Dockerfile:安裝 ocrmypdf 與 Tesseract OCR 語言包

## 文件
- 更新 OCR 功能文件
- 文件目錄結構改為中文名稱

## 測試
- 修復 BabelDOC 和 PDFMathTranslate 測試的 OCR mock
- 所有 345 個測試通過
2026-01-23 16:28:33 +08:00

273 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Docker 部署指南
本文件說明如何使用 Docker 部署 ConvertX-CN。
---
## Docker Image 版本
### 官方預建版(推薦)
| Tag | 說明 |
| ----------------------------- | ---------- |
| `convertx/convertx-cn:latest` | 最新穩定版 |
| `convertx/convertx-cn:v0.1.x` | 指定版本號 |
**內建功能:**
- ✅ 核心轉換工具FFmpeg、LibreOffice、ImageMagick 等)
- ✅ OCR 支援:英文、繁/簡中文、日文、韓文、德文、法文
- ✅ 字型Noto CJK、Liberation、自訂中文字型
- ✅ TexLive支援 CJK/德/法)
**Image 大小:約 4-6 GB**
### 完整版(自行 Build
使用 `Dockerfile.full` 自行建構,適合需要:
- 65 種 OCR 語言
- 完整 TexLive
- 額外字型套件
```bash
docker build -f Dockerfile.full -t convertx-cn-full .
```
> ⚠️ 注意Image 大小可能超過 **10GB**Build 時間約 **30-60 分鐘**
---
## Docker Run
### 基本啟動
```bash
docker run -d \
--name convertx-cn \
--restart unless-stopped \
-p 3000:3000 \
-v ./data:/app/data \
-e TZ=Asia/Taipei \
-e JWT_SECRET=你的隨機字串至少32字元 \
convertx/convertx-cn:latest
```
### 參數說明
| 參數 | 說明 |
| -------------------------- | ---------- |
| `-d` | 背景執行 |
| `--name convertx-cn` | 容器名稱 |
| `--restart unless-stopped` | 自動重啟 |
| `-p 3000:3000` | 連接埠映射 |
| `-v ./data:/app/data` | 資料持久化 |
| `-e TZ=Asia/Taipei` | 時區設定 |
### 進階選項
```bash
docker run -d \
--name convertx-cn \
--restart unless-stopped \
-p 3000:3000 \
-v ./data:/app/data \
-e TZ=Asia/Taipei \
-e JWT_SECRET=你的隨機字串 \
-e ACCOUNT_REGISTRATION=false \
-e HTTP_ALLOWED=true \
-e AUTO_DELETE_EVERY_N_HOURS=24 \
convertx/convertx-cn:latest
```
---
## 資料持久化
### Volume 結構
```
./data/
├── convertx.db # SQLite 資料庫
├── uploads/ # 上傳的原始檔案
└── output/ # 轉換後的檔案
```
### 建立資料夾
**重要**:請務必先建立資料夾,否則 Docker 會建立匿名 volume。
**Linux / macOS**
```bash
mkdir -p ~/convertx-cn/data
```
**Windows PowerShell**
```powershell
mkdir C:\convertx-cn\data
```
### 備份與還原
**備份:**
```bash
tar -czvf convertx-backup-$(date +%Y%m%d).tar.gz ./data
```
**還原:**
```bash
tar -xzvf convertx-backup-20260120.tar.gz
```
---
## 硬體加速
### NVIDIA GPU (CUDA/NVENC)
1. 安裝 [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html)
2. Docker Compose 配置:
```yaml
services:
convertx:
image: convertx/convertx-cn:latest
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
- FFMPEG_ARGS=-hwaccel cuda -hwaccel_output_format cuda
- FFMPEG_OUTPUT_ARGS=-c:v h264_nvenc -preset fast
```
### Intel Quick Sync Video (QSV)
```yaml
services:
convertx:
image: convertx/convertx-cn:latest
devices:
- /dev/dri:/dev/dri
environment:
- FFMPEG_ARGS=-hwaccel qsv
- FFMPEG_OUTPUT_ARGS=-c:v h264_qsv -preset faster
```
### AMD VAAPI
```yaml
services:
convertx:
image: convertx/convertx-cn:latest
devices:
- /dev/dri:/dev/dri
environment:
- FFMPEG_ARGS=-hwaccel vaapi -hwaccel_device /dev/dri/renderD128
- FFMPEG_OUTPUT_ARGS=-c:v h264_vaapi
```
---
## 資源限制
### 記憶體限制
```yaml
services:
convertx:
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 2G
```
### CPU 限制
```yaml
services:
convertx:
deploy:
resources:
limits:
cpus: "2"
```
---
## 版本更新
**1. 拉取最新版本:**
```bash
docker pull convertx/convertx-cn:latest
```
**2. 停止並移除舊容器:**
```bash
docker stop convertx-cn
docker rm convertx-cn
```
**3. 重新啟動(使用相同的參數):**
```bash
docker run -d --name convertx-cn ...
```
或使用 Docker Compose
```bash
docker compose pull
docker compose up -d
```
---
## 疑難排解
### 查看日誌
```bash
docker logs convertx-cn
```
持續追蹤日誌:
```bash
docker logs -f convertx-cn
```
### 進入容器
```bash
docker exec -it convertx-cn /bin/bash
```
### 常見問題
| 問題 | 解決方法 |
| ----------- | ------------------------------ |
| 啟動失敗 | 檢查日誌 `docker logs` |
| Port 被占用 | 改用其他 port `-p 8080:3000` |
| 權限錯誤 | `chmod -R 777 ./data` |
| 記憶體不足 | 增加記憶體限制或減少同時轉換數 |
---
## 相關文件
- [Docker Compose 詳解](docker-compose.md)
- [反向代理設定](反向代理.md)
- [環境變數設定](../配置設定/環境變數.md)