当前位置: 首页 > news >正文

Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)

文章目录

  • 一、Ragflow
    • 1.Ragflow是什么?---不止于检索的企业级AI知识库引擎
    • 2.核心优势
    • 3.技术架构
    • 4.适用场景
  • 二、Docker部署
    • 1.零基础Docker部署教程
    • 2.问题解决方法
      • 2.1wsl --update命令没有反应
  • 二、Ragflow使用Docker本地部署
    • 1.Ragflow源码下载
      • 1.1Git命令下载
      • 1.2直接解压,下载本地
    • 2.找到ragflow下面的docker文件
    • 3.浏览器访问链接,就能看到操作界面
  • 三、Docker部署Ragflow常见问题及解决方案
    • 1.本地安装有Dify导致Ragflow端口冲突报错
    • 2.Docker容器里的Ragflow-cpu-1 一直重新启动
      • 2.1出现这种情况的原因
      • 2.2解决方法
    • 3.登录进入是Welcome to nginx!(这就是如成,看似成功了实则差一点,博主一样能够解决的,小意思啦)
      • 3.1修改docker/docker-compose.yml文件
      • 3.2修改完之后,重建容器
      • 3.3查看容器状态
      • 3.4验证首页不再是Welcome页
      • 3.5打开浏览器输入,就会进入到Ragflow
    • 4.进去了注册成功也能登陆了,但是文件上传受限,1MB文件都说大,没关系,一样可以解决
      • 4.1 上传文件有限制解决方法
      • 4.2 上传文件过大解决方法
    • 5.如果您遇到的困难,博主没有写出来,请私信我,我帮您思考解决,本文只是博主遇到的问题,麻烦点个关注谢谢您的时间!

一、Ragflow

1.Ragflow是什么?—不止于检索的企业级AI知识库引擎

RAGFlow 是由 infiniflow 开源的新一代 RAG(检索增强生成)引擎,核心定位是 “为 LLM 构建更优的上下文层”,旨在解决传统知识库 “数据解析弱、检索不准、落地门槛高” 三大痛点。它并非简单的 “检索 + 生成” 工具,而是整合了 RAG+Agent 双驱动能力的全链路解决方案,支持从多源数据接入到 AI 问答系统部署的端到端流程,覆盖个人、中小企业到大型企业的全场景需求,已在多个行业实现规模化落地。

2.核心优势

  • 深度文档解析:攻克 “非标数据” 处理难题
    • RAGFlow 搭载近 10GB 的 DeepDoc 深度解析引擎,实现了对异构数据源的 “无差别精准处理”—— 不仅支持 DOCX、PPT、Excel、PDF 等常规格式,更能完美解析扫描件、拍照文档、带水印文件中的文字信息,彻底解决传统工具 “扫描件乱码” 的痛点。对于工程图纸、法律合同、财务报表等专业场景,其 OCR 引擎(支持 PaddleOCR、Tesseract)还能提取结构化信息(如表格键值对),为后续检索奠定高质量数据基础。
  • 智能分块策略:让知识结构化更精准可控
    • 知识库效果的核心在于 “分块质量”,RAGFlow 提供超过 10 种精细化分块模板,实现 “文档类型适配”:普通文档按语义切分、Excel 支持 “一行一问”、书籍 / 法规按章节条款拆分,彻底告别传统工具 “固定字符长度粗暴切分” 的弊端。更重要的是,分块过程全程可视化,支持手动调整优化,同时会通过大模型自动生成关键词和关联问题,进一步提升检索相关性。
  • 多路召回 + 重排:检索精度再升级
    • RAGFlow 采用 “向量语义匹配 + 全文检索 + 知识结构匹配” 的多路召回策略,相比单一向量检索,覆盖更全面、精准度更高。在召回结果后,系统会通过 Rerank 重排模型进行二次筛选,将最相关的知识块置顶;同时支持按文档类型、标签、时间等元数据过滤,配合 “原文高亮溯源” 功能,让每个回答都能精准定位出处,彻底解决 LLM “幻觉” 问题。
  • 低代码部署 + 高度集成:落地成本大幅降低
    • 无需从零搭建 RAG 链路 —— 通过 React 可视化拖拽界面,只需 3 步(上传文档→配置工作流→发布)即可部署企业级问答系统,非技术人员也能快速上手。技术层面支持 OpenAI、GPT-5、Kimi K2、Qwen 等主流 LLM 接入,后端基于 FastAPI+Elasticsearch 构建,提供强大的 API 接口,可与 N8N、MCP 等自动化工具无缝集成,实现文件上传、知识查询的自动化流程。

3.技术架构

RAGFlow 采用前后端解耦的模块化架构,核心分为 6 大组件,结构清晰、扩展性强:

模块名称技术实现核心功能
Web 前端React + Tailwind拖拽式流程配置、文档上传、问答交互界面
流程编排引擎Node.js + JSON DSL管理工作流逻辑、模型调用顺序
数据解析层Python + Langchain文档解析、OCR 识别、分块与向量生成
检索引擎连接器Elasticsearch多路召回、重排序、元数据过滤
LLM 接入层REST + 多模型适配对接各类 LLM 推理服务
后端权限管理FastAPI多项目支持、角色权限控制、会话维护

整体流程由 JSON Flow 驱动,从数据解析到检索生成形成闭环,支持单机部署、集群扩展,满足个人知识库到企业级大规模应用的不同需求。

4.适用场景

RAGFlow 的灵活性使其在多个领域具备落地价值:​

  • 个人 / 科研场景:搭建私人知识库,快速检索论文、笔记、学习资料;​
  • 企业办公场景:合同审阅、FAQ 智能问答、内部文档查询(如技术手册、规章制度);​
  • 专业领域:工程图纸检索、法律案例分析、医疗文献查询、金融投研报告生成;​
  • 客服 / 支持场景:构建智能客服系统,自动解答用户咨询,降低人工成本。

二、Docker部署

1.零基础Docker部署教程

Docker部署在本人之前写的部署Milvus和Redis教程中2.1有详细介绍

2.问题解决方法

2.1wsl --update命令没有反应

有些伙伴会遇见docker下载完成后会出现强制手动更新的命令会出现进度条不动的情况

wsl --update

使用下面命令即可解决

wsl --update --web-download

解决原因
wsl --update 依赖系统内置的更新通道(如 Microsoft Store 或 Windows Update)来获取 WSL 内核更新。在无 Store(如 LTSC 版本)、网络策略限制或组件缺失的环境中,该通道不可用,导致命令失效。而 wsl --update-web-download 绕过这些依赖,直接从微软公开 CDN 下载安装包,仅需基础网络访问权限。

二、Ragflow使用Docker本地部署

1.Ragflow源码下载

1.1Git命令下载

需要科学上网:git clone https://github.com/infiniflow/ragflow.git
不需要科学上网:git clone https://gitee.com/infiniflow/ragflow.git

1.2直接解压,下载本地

2.找到ragflow下面的docker文件



进入到控制输入下面命令

docker compose -f docker-compose.yml up -d


看见下面界面就是成功了

3.浏览器访问链接,就能看到操作界面

http://localhost/


恭喜你,成功在本地使用Docker部署了Ragflow!

三、Docker部署Ragflow常见问题及解决方案

1.本地安装有Dify导致Ragflow端口冲突报错


由于本地部署了dify,因此访问端口跟ragflow冲突,因此,我这边利用vscode对docker文档下docker-compose.yml文件的主机映射做修改,也可以在ragflow目录下面输入code .(这个命令针对你安装了Vs code,如果没有右击使用记事本,或者编译软件Pycharm等都可以,修改完保存即可)

80端口改为8000(博主这里没冲突,所以没改),443端口改为4433,一定要保存文件!!


在docker文件目录下cmd,输入

docker compose -f docker-compose.yml up -d

2.Docker容器里的Ragflow-cpu-1 一直重新启动

这个问题有点棘手了,当时困惑了两天,但是我已经帮你们开好路了,大胆一步一步做都可以配置好的

2.1出现这种情况的原因

  • 容器: docker-ragflow-cpu-1一直Restarting
  • 日志核心报错:cp: cannot stat ‘/etc/nginx/conf.d/ragflow.conf.python’:No such file or directory
  • docker-compose.yml 里把本地脚本挂在进容器了: ./entrypoint.sh:/ragflow/entrypoint.sh
  • 但你用的官方镜像 infiniflow/ragflow:v0.24.0,这个镜像里并没有该脚本期望的nginx配置文件结构

也就是说,本地docker/entrypoint.sh(比较新)覆盖了镜像内原生entrypoint(v0.24.0),导致启动失败并一直重启

2.2解决方法

1.编辑docker/docker-compose.yml
2.在ragflow-cpu和ragflow-gpu里面取消这行注释或者删除

  • ./entrypoint.sh:/ragflow/entrypoint.sh



3.重新拉起(还是docker目录下使用):

  • docker compose -f docker-compose.yml down
  • docker compose -f docker-compose.yml up -d

4.查看状态:

  • docker ps -a
  • docker logs -f docker-ragflow-cpu-1

3.登录进入是Welcome to nginx!(这就是如成,看似成功了实则差一点,博主一样能够解决的,小意思啦)

3.1修改docker/docker-compose.yml文件

volumes: - ./ragflow-logs:/ragflow/logs - ./nginx/ragflow.conf.python:/etc/nginx/conf.d/default.conf - ./nginx/proxy.conf:/etc/nginx/proxy.conf # - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./service_conf.yaml.template:/ragflow/conf/service_conf.yaml.template # - ./entrypoint.sh:/ragflow/entrypoint.sh

注意:

  • ./entrypoint.sh:/ragflow/entrypoint.sh 一定要保持注释,否则容易再次出现版本不匹配
  • 博主这里使用python代理方案,所以挂ragflow.conf.python

3.2修改完之后,重建容器

继续在ragflow执行:

docker compose -f docker/docker-compose.yml down
docker compose -f docker/docker-compose.yml up -d

3.3查看容器状态

docker ps -a

你需要看到

  • docker-ragflow-cpu-1 是Up
  • mysql/minio/es/redis是Up(healthy)

3.4验证首页不再是Welcome页

curl.exe -I http://127.0.0.1
curl.exe http:// 127.0.0.1

curl -I返回HTTP/1.1 200 OK
curl 返回内容里有RAGFLOW而不是Welcome to nginx!

3.5打开浏览器输入,就会进入到Ragflow

http://localhost/

4.进去了注册成功也能登陆了,但是文件上传受限,1MB文件都说大,没关系,一样可以解决

4.1 上传文件有限制解决方法

  • 打开docker/.env文件,取消注释

MAX_CONTENT_LENGTH=1073741824(1GB,单位字节)

  • 同时修改docker/nginx/nginx.conf里的client_max_body_size,和上面大小一致
  • 重启容器生效:docker compose down&& docker compose up -d

4.2 上传文件过大解决方法

ragflow\docker\nginx/ragflow.conf.python增加红色框的代码,手动写入或者从下面这个框复制也可以

client_max_body_size 2048M;


重启容器

docker compose down
docker compose up -d

就可以解决问题,正常进入到Ragflow界面

5.如果您遇到的困难,博主没有写出来,请私信我,我帮您思考解决,本文只是博主遇到的问题,麻烦点个关注谢谢您的时间!

http://www.jsqmd.com/news/579999/

相关文章:

  • MogFace-large保姆级教学:webui.py源码结构解读与自定义修改指南
  • 忍者像素绘卷从零开始:基于Z-Image-Turbo的亮色像素AI绘画实战教程
  • 英雄联盟身份定制完全指南:3步打造专属游戏形象
  • 孤能子视角:理论的“蒸馏“:[耦合,存续,能效,革命],还原的“遗憾“,顺看大模型的蒸馏
  • DeepSeek-R1-Distill-Qwen-7B快速上手:Ollama部署实测,推理模型5分钟开箱即用
  • 【Altium】AD24软件安装后没有Library器件库
  • 编译期AI推理成为可能?C++27 constexpr增强深度解析,含Clang 19/MSVC 17.10实测基准数据,立即升级避坑指南
  • Alpamayo-R1-10B参数详解:bfloat16 vs float16在轨迹精度与显存占用权衡
  • AI Coding 使用教程
  • Ostrakon-VL-8B部署案例:边缘服务器(Jetson AGX Orin)轻量化适配记录
  • 基于Matlab的混凝土随机球形骨料球体蒙特卡洛随机分布模型
  • Graphormer效果展示:乙醇CCO预测pKa=15.9 vs 实验值15.9(误差0.0)
  • Bili2text:B站视频语音识别转文字工具,让内容提取效率提升400%的开源解决方案
  • OpenClaw版本升级:Qwen3-4B模型与新框架特性的兼容性
  • 应急管理大数据指挥中心解决方案PPT(50页)
  • Alibaba DASD-4B Thinking 对话工具实战:构建智能数据库查询与设计助手
  • CTFHUB的SQL注入和XSS
  • Phi-4-Reasoning-Vision实战案例:电商商品图智能分析与隐藏线索识别应用
  • GAM注意力机制实战:如何在PyTorch中实现跨通道-空间交互增强
  • 【RAG 项目实战 01】在 LangChain 中集成 Chainlit
  • UE5开发日志:个人足球游戏demo《SketchSoccer》——后期处理体积实现风格化素描
  • SAM 3快速上手攻略:只需输入英文物体名,复杂分割变简单
  • AUTOSAR CAN NM
  • 基于Simulink的滞环电压控制(Bang-Bang)Buck仿真
  • Excel映射为SQL规范
  • GLM-4.1V-9B-Base快速上手:无需代码上传图片即得专业级中文描述
  • Llama-3.2V-11B-cot赋能微信小程序:打造智能客服与内容生成应用
  • 数据结构 ------ 1:顺序表
  • intv_ai_mk11GPU部署教程:CSDN云GPU实例上intv_ai_mk11服务的启动与持久化配置
  • Kandinsky-5.0-I2V-Lite-5s快速上手:Web界面零配置生成短视频(附提示词模板)