我试图在docker容器中安装一个numpy依赖项。(我的代码大量使用它)。在构建容器时,numpy库根本不安装,构建失败。这是在OS raspbian buster/stretch上。但是,在MAC OS上构建容器时,这确实有效。
我怀疑有某种与python相关的问题,但是我一辈子都搞不懂如何让它工作。
我应该指出,从需求文件中删除pip install numpy并在dockerfile中的RUN语句中使用它并不能解决这个问题。
Dockerfile文件:
FROM python:3.6
ENV PYTHONUNBUFFERED 1
ENV APP /app
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir $APP
WORKDIR $APP
ADD requirements.txt .
RUN pip install -r requirements.txt
COPY . .
requirements.txt包含所有项目需求,amounf是numpy。
Step 6/15 : RUN pip install numpy==1.14.3
---> Running in 266a2132b078
Collecting numpy==1.14.3
Downloading https://files.pythonhosted.org/packages/b0/2b/497c2bb7c660b2606d4a96e2035e92554429e139c6c71cdff67af66b58d2/numpy-1.14.3.zip (4.9MB)
Building wheels for collected packages: numpy
Building wheel for numpy (setup.py): started
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
编辑:
所以在评论之后
skybunk
我建议去官方文档,再做一些调试,结果解决方案非常简单。谢谢
空中铺位
荣耀归你。是的。
解决方案:
使用alpine并安装python安装包依赖项,在执行pip安装要求之前升级pip。
这是我编辑过的文件-很明显。。。
FROM python:3.6-alpine3.7
RUN apk add --no-cache --update \
python3 python3-dev gcc \
gfortran musl-dev \
libffi-dev openssl-dev
RUN pip install --upgrade pip
ENV PYTHONUNBUFFERED 1
ENV APP /app
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir $APP
WORKDIR $APP
ADD requirements.txt .
RUN pip install -r requirements.txt
COPY . .