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

macOS Sonoma下Docker容器生成Embedding时退出码139问题求助

Docker容器中Chroma生成Embedding失败(退出码139)- macOS Sonoma环境问题

问题描述

升级至macOS Sonoma 14.0后,在Docker容器中使用Chroma生成Embedding时失败,执行docker-compose up --index embedding-test后容器始终以退出码139终止。

异常现象对比

  • 相同Docker容器在运行Monterey系统的Mac及EC2服务器上可正常运行
  • 本地Python虚拟环境(venv)中直接运行相同脚本可成功生成Embedding

环境版本信息

  • Chroma v0.4.13
  • macOS 14.0 Sonoma
  • Docker Desktop v4.24.0
  • 基础镜像:python:3.11.4-slim-bookworm

已尝试的排查操作

  • 清理Docker系统、容器、镜像
  • 卸载并重装Docker Desktop
  • 以上操作均未解决问题

附相关文件

  • Dockerfile
  • 测试脚本:embedding_test.py
  • 依赖清单:requirements.txt

解决方案

退出码139对应段错误(Segmentation Fault),结合Apple Silicon+Sonoma环境,大概率是Docker架构模拟或Chroma底层依赖兼容性问题,可按以下步骤处理:

  1. 启用Docker Rosetta模拟
    打开Docker Desktop设置 → Features in development,勾选"Use Rosetta for x86/amd64 emulation on Apple Silicon",重启Docker后重新构建镜像并运行容器。

  2. 强制指定镜像架构
    在Dockerfile开头添加平台参数,强制以amd64架构构建:

    FROM --platform=linux/amd64 python:3.11.4-slim-bookworm
    

    重新构建镜像后启动容器。

  3. 升级Chroma版本
    将Chroma版本升级至v0.4.14及以上,后续版本修复了Apple Silicon环境的兼容性问题,修改requirements.txt中的版本号后重新构建镜像。

  4. 更换纯Python实现的嵌入模型
    若使用默认的all-MiniLM-L6-v2模型,可替换为纯PyTorch实现的版本,避免底层C扩展库的兼容性冲突。

内容的提问来源于stack exchange,提问作者ryan-serpico

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:46:06