FireRed-OCR Studio保姆级教程:Docker Compose多服务协同部署(含缓存服务)
·
FireRed-OCR Studio保姆级教程:Docker Compose多服务协同部署(含缓存服务)
1. 项目概述
FireRed-OCR Studio 是一款基于 Qwen3-VL (FireRed-OCR) 模型开发的工业级文档解析工具。它不仅能精准识别文字,更能完美还原复杂的表格结构、数学公式及文档布局,并将其转化为结构化的 Markdown 格式。
本教程将详细介绍如何使用 Docker Compose 部署包含缓存服务的完整 FireRed-OCR Studio 解决方案。通过本教程,您将获得:
- 完整的 Docker Compose 部署方案
- Redis 缓存服务的集成配置
- 模型预加载优化方案
- 多服务协同工作流程
2. 环境准备
2.1 系统要求
- Linux 系统(推荐 Ubuntu 20.04+)
- Docker 20.10.0+
- Docker Compose 2.0.0+
- NVIDIA 显卡驱动(如需 GPU 加速)
- 至少 16GB 内存(推荐 32GB)
- 50GB 可用磁盘空间
2.2 基础组件安装
# 安装 Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. 部署架构设计
3.1 服务组成
我们的部署方案包含以下核心服务:
- OCR 主服务:运行 FireRed-OCR Studio 核心功能
- Redis 缓存服务:存储模型缓存和临时结果
- Nginx 代理服务:负载均衡和反向代理
3.2 架构流程图
用户请求 → Nginx → OCR主服务 → Redis缓存 → 返回结果
4. Docker Compose 配置
4.1 基础配置文件
创建 docker-compose.yml 文件:
version: '3.8'
services:
redis:
image: redis:6.2-alpine
container_name: firered-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
ocr-service:
image: fireredteam/firered-ocr-studio:latest
container_name: firered-ocr
ports:
- "8501:8501"
environment:
- REDIS_HOST=redis
- MODEL_CACHE_ENABLED=true
volumes:
- model_cache:/root/.cache
depends_on:
- redis
restart: unless-stopped
nginx:
image: nginx:1.21-alpine
container_name: firered-nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- ocr-service
restart: unless-stopped
volumes:
redis_data:
model_cache:
4.2 Nginx 配置
创建 nginx.conf 文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream ocr_backend {
server ocr-service:8501;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://ocr_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
5. 部署与启动
5.1 启动服务
docker-compose up -d
5.2 验证服务状态
docker-compose ps
预期输出:
Name Command State Ports
--------------------------------------------------------------------------------
firered-nginx /docker-entrypoint.sh ngin ... Up 0.0.0.0:80->80/tcp
firered-ocr streamlit run app.py Up 0.0.0.0:8501->8501/tcp
firered-redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
5.3 访问服务
打开浏览器访问:http://your-server-ip
6. 缓存服务优化
6.1 模型预加载配置
修改 docker-compose.yml 中 OCR 服务的环境变量:
environment:
- REDIS_HOST=redis
- MODEL_CACHE_ENABLED=true
- PRELOAD_MODELS=true
6.2 缓存性能监控
# 查看 Redis 内存使用情况
docker exec -it firered-redis redis-cli info memory
7. 常见问题解决
7.1 显存不足问题
如果遇到 OOM 错误,可以修改 OCR 服务的启动参数:
environment:
- TORCH_DTYPE=float16
- QUANTIZE_MODEL=true
7.2 端口冲突问题
如果端口被占用,可以修改 docker-compose.yml 中的端口映射:
ports:
- "8502:8501" # 将外部端口改为8502
7.3 首次加载缓慢
首次启动时模型下载可能需要较长时间,可以通过以下方式加速:
# 提前下载模型到本地
docker pull fireredteam/firered-ocr-studio:latest
8. 总结
通过本教程,您已经成功部署了包含缓存服务的 FireRed-OCR Studio 解决方案。这套方案具有以下优势:
- 一键部署:通过 Docker Compose 实现快速部署
- 性能优化:Redis 缓存显著提升重复请求响应速度
- 资源隔离:各服务独立运行,互不干扰
- 易于扩展:可轻松添加更多 OCR 服务实例
建议定期检查服务日志,确保系统稳定运行:
docker-compose logs -f
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)