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

4.9 KiB
Raw Blame History

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
  • 額外字型套件
docker build -f Dockerfile.full -t convertx-cn-full .

⚠️ 注意Image 大小可能超過 10GBBuild 時間約 30-60 分鐘


Docker Run

基本啟動

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 時區設定

進階選項

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

mkdir -p ~/convertx-cn/data

Windows PowerShell

mkdir C:\convertx-cn\data

備份與還原

備份:

tar -czvf convertx-backup-$(date +%Y%m%d).tar.gz ./data

還原:

tar -xzvf convertx-backup-20260120.tar.gz

硬體加速

NVIDIA GPU (CUDA/NVENC)

  1. 安裝 NVIDIA Container Toolkit

  2. Docker Compose 配置:

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)

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

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

資源限制

記憶體限制

services:
  convertx:
    deploy:
      resources:
        limits:
          memory: 4G
        reservations:
          memory: 2G

CPU 限制

services:
  convertx:
    deploy:
      resources:
        limits:
          cpus: "2"

版本更新

1. 拉取最新版本:

docker pull convertx/convertx-cn:latest

2. 停止並移除舊容器:

docker stop convertx-cn
docker rm convertx-cn

3. 重新啟動(使用相同的參數):

docker run -d --name convertx-cn ...

或使用 Docker Compose

docker compose pull
docker compose up -d

疑難排解

查看日誌

docker logs convertx-cn

持續追蹤日誌:

docker logs -f convertx-cn

進入容器

docker exec -it convertx-cn /bin/bash

常見問題

問題 解決方法
啟動失敗 檢查日誌 docker logs
Port 被占用 改用其他 port -p 8080:3000
權限錯誤 chmod -R 777 ./data
記憶體不足 增加記憶體限制或減少同時轉換數

相關文件