You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Docker部署ArchiveBox时的OCI runtime exec失败"exec format error"错误?

解决ArchiveBox Docker部署后的链接添加失败与数据存储问题

先从你碰到的核心错误OCI runtime exec failed: exec format error说起,这个问题大概率是镜像架构不匹配导致的——Windows Docker环境下,如果你的机器是x86_64(amd64)架构,但拉取到了arm64版本的ArchiveBox镜像,就会出现这种执行格式错误。另外你用的添加链接命令也有小问题,再加上Windows下的目录挂载权限细节,咱们一步步解决:

1. 修复镜像架构不匹配问题

  • 如果你是直接用官方docker-compose.yml部署,先修改配置文件指定amd64架构的镜像:
    打开项目里的docker-compose.yml,找到image: archivebox/archivebox:latest这一行,改成:
    image: archivebox/archivebox:latest-amd64
    
  • 然后重新拉取镜像并重启容器:
    docker-compose pull
    docker-compose down -v
    docker-compose up -d
    

2. 修正链接添加命令

你之前用的/bin/archive不是正确的ArchiveBox命令,正确的管道添加命令应该是:

echo "https://example.com" | docker-compose exec -T archivebox archivebox add -

或者更简洁的直接指定链接:

docker-compose exec -T archivebox archivebox add "https://example.com"

核心是要调用archivebox add子命令,而不是直接执行/bin/archive。

3. 确保数据正确存储到本地data目录

  • 先检查docker-compose.yml里的卷挂载配置,确认data目录的挂载路径正确,应该有类似这样的配置:
    volumes:
      - ./data:/data
    
    如果路径不对,修改后重启容器。
  • 关于Windows下的权限:你用的icacls data /grant Everyone:F能开放权限,但如果Docker用的是WSL2后端,更稳妥的是把项目放在WSL2的文件系统里(比如/home/你的用户名/archivebox),而非Windows的C/D盘,这样权限和性能都更稳定。
  • 容器启动后,可以进入容器验证数据写入情况:
    docker-compose exec archivebox ls -l /data/archives
    
    如果能看到文件,说明容器内存储正常,回到本地data目录查看即可(WSL2后端的话,Windows侧路径是\\wsl$\你的发行版名称\home\你的用户名\archivebox\data)。

验证步骤

完成上面的修改后,重新执行添加链接命令,再检查本地data目录下的archives文件夹,应该能看到对应example.com的归档文件夹了。

内容的提问来源于stack exchange,提问作者D S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:41:53