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 服务组成

我们的部署方案包含以下核心服务:

  1. OCR 主服务:运行 FireRed-OCR Studio 核心功能
  2. Redis 缓存服务:存储模型缓存和临时结果
  3. 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 解决方案。这套方案具有以下优势:

  1. 一键部署:通过 Docker Compose 实现快速部署
  2. 性能优化:Redis 缓存显著提升重复请求响应速度
  3. 资源隔离:各服务独立运行,互不干扰
  4. 易于扩展:可轻松添加更多 OCR 服务实例

建议定期检查服务日志,确保系统稳定运行:

docker-compose logs -f

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐