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

张开发
2026/4/4 14:46:37 15 分钟阅读
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
文章目录一、Ragflow1.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打开浏览器输入就会进入到Ragflow4.进去了注册成功也能登陆了但是文件上传受限1MB文件都说大没关系一样可以解决4.1 上传文件有限制解决方法4.2 上传文件过大解决方法5.如果您遇到的困难博主没有写出来请私信我我帮您思考解决本文只是博主遇到的问题麻烦点个关注谢谢您的时间一、Ragflow1.Ragflow是什么—不止于检索的企业级AI知识库引擎RAGFlow 是由 infiniflow 开源的新一代 RAG检索增强生成引擎核心定位是 “为 LLM 构建更优的上下文层”旨在解决传统知识库 “数据解析弱、检索不准、落地门槛高” 三大痛点。它并非简单的 “检索 生成” 工具而是整合了 RAGAgent 双驱动能力的全链路解决方案支持从多源数据接入到 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 接入后端基于 FastAPIElasticsearch 构建提供强大的 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.git1.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 -d2.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 directorydocker-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.yml2.在ragflow-cpu和ragflow-gpu里面取消这行注释或者删除./entrypoint.sh:/ragflow/entrypoint.sh3.重新拉起还是docker目录下使用docker compose -f docker-compose.yml downdocker compose -f docker-compose.yml up -d4.查看状态docker ps -adocker logs -f docker-ragflow-cpu-13.登录进入是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.python3.2修改完之后重建容器继续在ragflow执行docker compose -f docker/docker-compose.yml downdocker compose -f docker/docker-compose.yml up -d3.3查看容器状态docker ps -a你需要看到docker-ragflow-cpu-1 是Upmysql/minio/es/redis是Up(healthy)3.4验证首页不再是Welcome页curl.exe -I http://127.0.0.1curl.exe http:// 127.0.0.1curl -I返回HTTP/1.1 200 OKcurl 返回内容里有RAGFLOW而不是Welcome to nginx!3.5打开浏览器输入就会进入到Ragflowhttp://localhost/4.进去了注册成功也能登陆了但是文件上传受限1MB文件都说大没关系一样可以解决4.1 上传文件有限制解决方法打开docker/.env文件取消注释MAX_CONTENT_LENGTH1073741824(1GB单位字节)同时修改docker/nginx/nginx.conf里的client_max_body_size,和上面大小一致重启容器生效docker compose down docker compose up -d4.2 上传文件过大解决方法在ragflow\docker\nginx/ragflow.conf.python里增加红色框的代码,手动写入或者从下面这个框复制也可以client_max_body_size 2048M;重启容器docker compose downdocker compose up -d就可以解决问题正常进入到Ragflow界面5.如果您遇到的困难博主没有写出来请私信我我帮您思考解决本文只是博主遇到的问题麻烦点个关注谢谢您的时间

更多文章