很多人第一次跑 RAGFlow 都是在服务器上敲一条 compose 命令,然后卡在拉镜像慢、容器反复重启、网页打得开但检索没结果这几步上,却不知道先看哪里。这篇不讲原理,只给可执行的部署顺序和排查路径:起服务前该核对哪些配置项、容器起来后按什么顺序验证、常见报错分别对应哪一层。需要具体配置数值和版本要求时,去站内对应页面看当时的说明。
很多人第一次跑 RAGFlow 都是在服务器上敲一条 compose 命令,然后卡在拉镜像慢、容器反复重启、网页打得开但检索没结果这几步上,却不知道先看哪里。这篇不讲原理,只给可执行的部署顺序和排查路径:起服务前该核对哪些配置项、容器起来后按什么顺序验证、常见报错分别对应哪一层。需要具体配置数值和版本要求时,去站内对应页面看当时的说明。
下面的流程按「先对齐环境、再按依赖起服务、最后按日志排查」来走。每一步都配了判断标准,做到哪一步算过,做不过去该往哪看,都写清楚。照着做,比反复重装能省不少时间。
起容器之前先对三样东西
部署失败十有八九不是 compose 文件写错,而是环境没对齐。起服务前把机器、依赖、网络这三样各花几分钟确认一遍,能避免后面大部分莫名其妙的报错。具体的内存、磁盘、内核下限以镜像说明为准,不要用去年的经验值套。
- 机器侧
- 确认目标机可用内存、磁盘余量和内核版本是否满足镜像声明下限,到 /models/deploy 按当前镜像说明核对
- 依赖侧
- Docker 与 Compose 插件装到同一代版本,Compose 大版本变了 YAML 字段写法也会变,混装最容易起服务时报字段错误
- 网络侧
- 先确认镜像仓库能否直连,决定要不要提前配代理或换源,别拉到一半超时再回头重来
- 内存与磁盘留出余量,别按刚好够用去配,后面还要接模型和批量入库;
- Docker 与 Compose 版本成对升级,不要只升一个;
- 镜像源在起服务前就配好,不要边拉边调;
- 时区和字符集提前设对,日志时间戳错乱会干扰排查;
- 把这次的机器配置记一份,换机器直接对照。
起服务时按依赖顺序看,不要一把梭
容器化部署的常见误区是把所有服务一把拉起来,然后盯着容器列表看谁红了。正确做法是先起底座、确认它们健康,再起应用层。应用层启动时会连数据库和缓存,底座没就绪,应用就一直重连,最后被判成不健康甚至重启循环。
- 先起底座把数据库、缓存、向量库这类依赖容器拉起来,等健康检查通过再继续,验证方式是看它们的状态是否变为健康。
- 再起应用底座健康后起应用层,应用会去连依赖,连不上会直接报错而不是静默等待。
- 跟日志别跟界面用 compose 的日志跟踪看输出,容器列表里的「运行中」不等于内部服务已经就绪。
- 等初始化第一次启动常会自动建表和初始化,慢是正常的,判断标准是日志有没有继续往下走,而不是盯着进度条。
出问题时的排查顺序
出问题不要乱试,按「退出码与日志 → 端口与环境变量 → 数据卷权限」这个顺序查,能覆盖大部分情况。乱改配置只会把问题搅得更复杂,还可能把原本正常的部分弄坏。
| 现象 | 先看哪 | 常见原因 |
|---|---|---|
| 容器起不来 | 最后若干行日志与退出码 | 配置读不进来、端口被占、依赖连不上 |
| 一直重启 | 依赖是不是先就绪 | 应用连不上底座被判不健康 |
| 网页打不开 | 端口占用与环境变量映射 | 宿主机已有服务占了同一端口 |
| 网页能开但功能不可用 | 数据卷权限 | 容器内进程没有目录写权限 |
这张表能帮你把「哪一层出问题」先定位出来,再去看具体日志。定位对了,修起来通常很快;定位错了,就会在无关的配置上反复折腾。
网页能开之后还要验的两件事
看到登录页只能说明应用层起来了,不等于部署成功。基础链路和资源水位这两件事都要验,不然等问题在正式使用中冒出来,排查成本更高。
- 验基础链路:上传一份小文档、跑一次解析、发一次问答,走完一遍才算部署成功;
- 验资源水位:跑完一两个任务后回看内存和磁盘占用,确认不是靠吃满内存勉强撑住;
- 验重启恢复:手动重启一次容器,确认数据还在、服务能自动恢复;
- 留余量:为后面接模型和批量入库留出余量。
改配置和升级怎么做得不翻车
容器化部署最怕改一半失败、旧配置也没了。改 YAML 前先备份原文件和数据卷,升级镜像前先看说明里有没有涉及数据结构变更。写死的数字和变更细节以下游校验为准,这里只给动作。
- 备份先行改 YAML 前备份原文件和数据卷,改坏了能回退。
- 看变更说明升级镜像时先看说明里有没有涉及数据结构变更,涉及的话先备份数据,具体变更以站内资料库当前版本页为准。
- 记录过程把每一步成功了什么记下来,换机器或换团队接手时,这份记录比命令本身更值钱。
- 小步验证改完先起一遍,确认基础链路还在,再往下改别的。
部署这件事,能回退比一次成功更重要。下一步配置数值、镜像要求和当前版本说明会变,去站内页面核对当时的数字,别拿旧经验直接上。→
常见问题
compose 命令敲下去卡住不动,最先怀疑什么?
先分清卡在哪一段:拉镜像阶段不动多半是网络和镜像源问题;镜像拉完了但没起来,去看容器日志最后几行。不要一上来就删容器重来,很多时候日志里已经写清楚了是端口冲突还是依赖没就绪,看一眼比重跑快得多。
容器都显示在运行,但页面打不开怎么办?
容器在运行只代表进程没退,不代表服务监听的端口对。按顺序查三处:宿主机端口有没有被别的程序占着、端口映射有没有写对、防火墙或安全组有没有放行。另外初始化还没跑完时页面也会连不上,等日志里出现服务就绪的字样再试。
部署成功后换机器迁移要注意什么?
要迁的不只是 compose 文件,还有数据卷里的库文件和上传的文档,只搬配置文件过去等于空库。迁移前先在旧机上停服务再打包数据目录,新机上保持目录结构一致,起来后按上传文档跑一次问答验证,具体支持的迁移方式到站内相关教程页核对。