在苹果 M 芯片上部署 RagFlow 的坑与放弃之路

这篇博客记录了在 M1 Mac 上尝试构建 Ragflow Docker 镜像时遇到的问题,包括依赖下载失败、镜像体积过大、SSH 与 HTTPS 克隆内容不一致等多个坑。最终,由于构建困难且占用空间过大,放弃在 Mac 上部署 Ragflow,并推荐使用 AnythingLLM 作为替代方案。

阅读时长: 2 分钟
共 962字
作者: eimoon.com

1. 前提

今天在本地部署 ragflow的时候,因为是苹果M芯片,ragflow并不维护docker镜像,所以需要自己构建镜像. 这个是ragflow 的官网说明:

alt text

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 .

alt text

这里到没有什么问题,但是这个镜像有11.3GB,太大了!

4.创建自定义的ragflow镜像

然后再创建另外一个镜像

docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .

提示这个错误 alt text

没有这个文件夹,查看本地的目录,确实没有rag 这个文件夹, 但是我是从github clone下来的。我也没有删除过什么。

查看github 仓库确实有rag 这个文件夹。

查看git remote -vbranch,也都是一样的。

这里我写的比较简单,这期间我尝试删除仓库,又git clone && git pull 了多次,还是没有获取到rag文件夹。

最后发现,因为我配置了ssh,所以我git clone 一般习惯使用ssh但是就是这里出了问题

[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 .

现在又卡到这里了 alt text

可能也是网络问题,但是我不想再去源码折腾了,还是放弃吧~

总结

由于问题较多,而且占用空间太大,暂时放弃在mac上部署ragflow。若后续尝试,建议直接使用 HTTPS 克隆仓库,并使用国内镜像源。如果有非ARM核心,建议使用非ARM核心部署ragflow,否则建议选择 anytingllm 来替代,没有这么多问题。

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计