1. 前提
今天在本地部署 ragflow的时候,因为是苹果M芯片,ragflow并不维护docker镜像,所以需要自己构建镜像. 这个是ragflow 的官网说明:
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
uv run download_deps.py
docker build -f Dockerfile.deps -t infiniflow/ragflow_deps .
docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
2.下载依赖时遇到的问题
根据官网的说明,先clone 仓库。然后安装一些依赖。
首先遇到一个一个大坑
uv run download_deps.py
提示
╰─ uv run download_deps.py
⠼ Resolving dependencies... error: Failed to fetch: https://mirrors.aliyun.com/pypi/simple/nltk/
Caused by: Request failed after 3 retries
Caused by: error sending request for url (https://mirrors.aliyun.com/pypi/simple/nltk/)
这里总是遇到网络错误,但是我访问 https://mirrors.aliyun.com/pypi/
确实能正常访问的。
检查uv 的配置,也是使用的阿里云的源(这里我没有怀疑过这个镜像有问题)。浪费了好长时间。
[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple"
后来尝试更换一下镜像,不知道阿里源是什么问题, 把这个镜像修改为清华源才正常下载。
[[tool.uv.index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
3.构建依赖镜像
安装依赖后。然后创建依赖的镜像
docker build -f Dockerfile.deps -t infiniflow/ragflow_deps .
这里到没有什么问题,但是这个镜像有11.3GB,太大了!我的磁盘空间还有70多G,暂时先试一下吧。
4.创建自定义的ragflow镜像
然后再创建另外一个镜像
docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
提示这个错误
没有这个文件夹,查看本地的目录,确实没有rag
这个文件夹, 但是我是直接从github clone下来的。没有删除过什么,也没有做什么修改。
查看github 仓库确实有rag
这个文件夹。
查看git remote -v
和分支 branch
,也都是一样的。
这里我写的比较简单,这期间我多次尝试删除仓库,又git clone && git pull
重复了多次,还是没有获取到rag文件夹。
最后才发现,因为我配置了ssh,所以我从github clone 项目时候git clone
一般习惯使用ssh
,但是就是这里出了问题
git clone [email protected]:infiniflow/ragflow.git
而说明使用的是 https
git clone https://github.com/infiniflow/ragflow.git
正常来说使用
[email protected]:infiniflow/ragflow.git
(SSH 协议)和git clone https://github.com/infiniflow/ragflow.git
(HTTPS 协议)拉取的内容应该是一致的,不应该不同。不知道仓库什么原因,但是这里拉取的内容就是不一样。
最后使用 https clone
下来,修改dockerfile 中的 ARG NEED_MIRROR=1
使用国内镜像,运行
docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
现在又卡到这里了
可能也是网络问题,也可能是磁盘空间问题,因为折腾了一番,mac电脑只剩余了不到10G的空间,但是我不想再去源码折腾了,还是放弃吧~
总结
由于问题较多,而且占用空间太大,暂时放弃在mac上部署ragflow。若后续尝试,建议:
- 使用 HTTPS 克隆仓库,避免 SSH 拉取不全的问题;
- 配置国内镜像源(如清华源)以加快依赖下载,对于这个项目不要使用阿里镜像源;
- 如果有非ARM核心,建议使用非ARM核心部署ragflow,否则建议选择其他rag知识库(如 anytingllm )来替代,没有这么多问题。
后记
折腾许久后,决定不在本地继续尝试。购买了一台按量计费的阿里云服务器,最终在阿里云服务器(x86 架构,4 核 16G)上成功构建并运行了 RagFlow,包括完整依赖安装、镜像构建与运行服务一切顺利。
整个流程几乎无任何阻碍,网络连接顺畅、磁盘空间充足,验证了云部署方案的可行性与高效性。如果你也在被本地部署问题困扰,可以考虑直接将 RagFlow 部署在云服务器上。
关注我获取更多资讯

