- Create README.md for internationalization (i18n) documentation - Add English translation for main README and quick start guide - Add Japanese translation for main README - Add Simplified Chinese translation for main README - Introduce sample Docker Compose configurations for various deployment scenarios - Implement CI/CD documentation for testing and deployment workflows - Establish end-to-end testing guidelines and strategies - Create test strategy documentation outlining unit, integration, and E2E tests
4.8 KiB
4.8 KiB
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 大小可能超過 10GB,Build 時間約 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)
-
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"
版本更新
# 拉取最新版本
docker pull convertx/convertx-cn:latest
# 停止並移除舊容器
docker stop convertx-cn
docker rm convertx-cn
# 重新啟動(使用相同的參數)
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 |
| 記憶體不足 | 增加記憶體限制或減少同時轉換數 |