快速结论:在 Mac M4(Apple Silicon/ARM64)上构建 RAGFlow Docker 镜像时,apt 包下载失败,报错 Connection failed。优先尝试使用 --build-arg NEED_MIRROR=0 禁用镜像源,或改用 Docker Buildx 构建。
问题场景
用户按照 RAGFlow 官方文档在 Mac M4 上执行 docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim . 命令时,Dockerfile 中的 apt install 阶段无法下载 OpenJDK 等依赖包,导致构建中断。RAGFlow 官方仅提供 x86 镜像,ARM64 用户需要自行构建。
报错原文
Err:1 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 openjdk-11-jre-headless arm64 11.0.28+6-1ubuntu1~22.04.1
Connection failed [IP: 198.18.0.15 80]
Err:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 openjdk-11-jdk-headless arm64 11.0.28+6-1ubuntu1~22.04.1
Connection failed [IP: 198.18.0.15 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
尝试使用 openjdk-8 替代后同样失败:
Err:1 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe arm64 openjdk-8-jre-headless arm64 8u462-ga~us1-0ubuntu2~22.04.2
Connection failed [IP: 185.125.190.36 80]
原因分析
可能原因:
- 网络连接问题:Docker 构建过程中无法连接到 Ubuntu ports 源(ARM64 仓库),报错 IP 指向本地代理或网络中间设备。
- 镜像源配置问题:当
NEED_MIRROR=1时,Dockerfile 会将源替换为清华大学 TUNA 镜像,但该镜像可能对部分 ARM64 包同步不及时或连接被阻。 - Docker 网络环境问题:在 macOS 上通过 Docker Desktop 构建时,默认网络模式可能导致无法正确解析或连接外部仓库。
环境排查
- 确认 Docker 版本(建议 Docker Desktop 4.x+)。
- 确认是否已安装 Docker Buildx 插件(macOS Docker Desktop 默认集成)。
- 检查本地网络代理、VPN 或 DNS 设置是否拦截了
ports.ubuntu.com的访问。 - 确认 Docker 配置中是否设置了自定义 registry mirror(如 mirrors.xxx.com),若有可临时移除。
解决步骤
- (可优先尝试) 使用
--build-arg NEED_MIRROR=0禁用镜像源,改用默认 Ubuntu 仓库:docker build --build-arg LIGHTEN=1 --build-arg NEED_MIRROR=0 -f Dockerfile -t infiniflow/ragflow:nightly-slim . - 如果上述方法无效,改用 Docker Buildx 命令构建(已在其他用户中解决 SSL/包安装问题):
docker buildx build --platform linux/arm64 --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim --load . - 检查并重置 Docker 的 registry mirror 为默认设置:在 Docker Desktop → Settings → Docker Engine 中,确保
registry-mirrors字段为空或仅保留官方源。 - 若以上步骤均失败,尝试修改本地 Dockerfile,将
apt install -y default-jdk替换为apt install -y openjdk-8-jre(某些 ARM64 用户反馈有效),然后重新构建。 - 检查本地网络是否阻止了对
ports.ubuntu.com的外部连接,暂时关闭 VPN 或代理后重试。
验证方法
构建完成后,运行 docker images 确认 infiniflow/ragflow:nightly-slim 镜像存在。随后启动容器 docker run -d --name ragflow-test infiniflow/ragflow:nightly-slim,检查日志确认服务正常启动(无 apt 或 OpenJDK 相关错误)。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


