在Docker Alpine上安装numpy

我正在尝试在基于Alpine 3.1的Docker容器中安装numpy。 我正在使用下面的Dockerfile:

FROM alpine:3.1 RUN apk add --update make cmake gcc g++ gfortran RUN apk add --update python py-pip python-dev RUN pip install cython RUN pip install numpy 

这运行良好,直到pip install numpy时候,我得到以下错误:

 error: Command "gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -Inumpy/core/include -Ibuild/src.linux-x86_64-2.7/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/include/python2.7 -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -c build/src.linux-x86_64-2.7/numpy/core/src/npymath/ieee754.c -o build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/numpy/core/src/npymath/ieee754.o" failed with exit status 1 

easy_install-2.7 numpy给出了相同的错误。

是否有任何configuration/安装步骤我失踪?

如果你不需要从pypi安装numpy ,你可以从pypi存储库安装它。 软件包名称为py-numpy ,位于testing版本库中,请参阅此处 。 最小的Dockerfile示例适用于我

 FROM alpine:3.2 ADD repositories /etc/apk/repositories RUN apk add --update python python-dev gfortran py-pip build-base py-numpy@community 

repositories文件的内容

 http://dl-cdn.alpinelinux.org/alpine/v3.2/main @community http://dl-cdn.alpinelinux.org/alpine/edge/community 

我自己也遇到了一些麻烦,长话短说,我会鼓励你问一下这个问题是否真的值得。 当你开始向pandas,gpus和scipy这样的堆栈添加东西时,Numpy是非常巨大的,所以在高山上构build它的好处是有限的,当你的空间达到500MB的时候,使用Debian,Arch甚至Ubuntu的成本相对较低这个库无论如何。

说了这么多,我把这个图像放在一起。 我需要作为构build时依赖musl-dev,linux-headers和g ++。 我也结束了需要从边缘添加openblas的东西在后面的东西,所以可能有一些依赖关系也是必需的。 但我相信只要join三个前图书馆

 apk --no-cache add musl-dev linux-headers g++ 

应该足以防止你所得到的gcc错误。 您可以在https://hub.docker.com/r/o76923/alpine-numpy-stack/上查看图像