首页 > 解决方案 > spaCy 和 Docker:不能“dockerize”使用 spaCy 模块的 Flask 应用程序

问题描述

我正在尝试在我的 docker 映像上安装 SpaCy,但它总是失败。首先它在我的 requirements.txt 文件中,但它立即失败了。后来我尝试为 pip 运行单独的 RUN 指令以单独安装它,但它也失败了。

这是我的 Dockerfile 内容:

FROM python:3.6-alpine
WORKDIR /sentenceSimilarity
ADD . /sentenceSimilarity
RUN pip install -r requirements.txt
RUN pip install -U pip setuptools wheel
RUN pip install -U spacy
RUN python -m spacy download en_core_web_sm
CMD ["python", "app.py"]

我最终从我的 requirements.txt 文件中删除了除 Flask 之外的所有内容,问题总是偶然发现 Spacy 出现的那一行,现在唯一的区别是它需要很长时间才能失败。看截图:

在此处输入图像描述

稍微观察一下,我认为 pip 一直在迭代以检查哪个版本可能适合,从最新到最旧。但是最后没有一个被安装。

我见过其他人与 SpaCy 有类似问题,但没有明显的解决方案。

有人可以建议我可以用来解决此问题的方法吗?提前致谢。

标签: pythondockerspacy

解决方案


docker Github 问题中的spacy 安装非常慢FROM python:3.6-alpine解释了 Alpine Python docker 的问题(我看到你的 dockerfile 中有):

如果您使用的是 Alpine Linux 容器,您可能不应该这样做:这对于 Python 来说是一个糟糕的选择,因为任何 PyPi 轮子都不起作用,因此您必须重新构建所有内容。如果您决定使用 Alpine Linux,您应该为自己配备一个操舵室,这样您就不必一直重建车轮。

因此,您需要使用另一个图像,例如@mkkeffeler 推荐的苗条 docker图像。


推荐阅读