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

Docker构建镜像下载spaCy en_core_web_lg时返回exit code:247如何解决

问题根因

exit code 247属于Docker构建进程因内存不足被系统OOM(内存溢出)终止的典型报错。你遇到的问题本质是下载777.1MB的en_core_web_lg模型时,下载安装进程的内存占用超出了Docker运行时的默认内存上限,因此会出现构建失败、进入容器后下载进程卡死的情况。

可行解决方案
  • 方案1:调整Docker运行时内存上限
    • 桌面端Docker(Windows/macOS):打开Docker Desktop设置页面,进入「资源」选项卡,将内存分配调整到至少2GB,推荐配置4GB,重启Docker后重新执行构建命令即可。
    • Linux服务器端:执行构建命令时临时分配更高内存,命令如下:
      docker build --memory 4g -f Dockerfile -t app:latest .
      
  • 方案2:优化Dockerfile降低安装时内存占用
    spaCy的download命令本质是调用pip安装对应版本的模型包,你可以直接修改Dockerfile,跳过spacy download的封装层,使用pip加--no-cache-dir参数直接安装模型,大幅降低内存开销,修改后的Dockerfile参考:
    FROM python:3.9
    WORKDIR /app
    RUN pip3 install spacy
    RUN pip3 install --no-cache-dir https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-3.1.0/en_core_web_lg-3.1.0-py3-none-any.whl
    
  • 方案3:本地预下载模型后复制进镜像
    如果你所在环境网络不稳定,也可以先把对应版本的en_core_web_lg的whl安装包下载到本地,和Dockerfile放在同一目录下,再修改Dockerfile直接安装本地包,完全避免构建阶段的大文件下载:
    FROM python:3.9
    WORKDIR /app
    RUN pip3 install spacy
    COPY en_core_web_lg-3.1.0-py3-none-any.whl ./
    RUN pip3 install --no-cache-dir en_core_web_lg-3.1.0-py3-none-any.whl
    
验证方法

构建完成后可以执行以下命令确认模型安装正常:

docker run --rm app:latest python -c "import spacy; nlp = spacy.load('en_core_web_lg'); print('模型加载成功')"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:06:03