在Docker Alpine上安装numpy

问题描述 投票:20回答:4

我正在尝试在基于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给出了同样的错误。

我缺少任何配置/安装步骤吗?

python numpy docker pip alpine
4个回答
25
投票

如果您不需要从numpy安装pypi,您可以从alpine存储库安装它。包名为py-numpy,位于testing存储库中,请参阅here。最小的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

25
投票

我自己一直遇到一些麻烦,长话短说,我会鼓励你问这是否真的值得麻烦。当你开始在堆栈中添加像pandas,gpus和scipy这样的东西时Numpy是巨大的,所以在高山上构建它的好处是有限的,当你的500GB空间开启时,使用Debian,Arch甚至Ubuntu的节省相对适中无论如何这个图书馆。

话虽如此,我把一张图片拼凑起来。我需要构建时依赖项musl-dev,linux-headers和g ++。我还需要从堆栈中添加openblas以便稍后在堆栈中添加某些内容,因此可能还需要一些依赖项。但我相信只需添加三个以前的库

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

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


1
投票

试试这个:

RUN apk --no-cache --update-cache add gcc gfortran python python-dev py-pip build-base wget freetype-dev libpng-dev openblas-dev
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
RUN pip install pandas

0
投票

根据我的docker images,这个大概是311MB:

FROM python:3.6-alpine
RUN apk add g++ 
RUN pip install numpy

(同时python:3.6本身约900MB)

你试过没有安装gcc吗?可能有冲突吗?不确定。这个对我来说是一个最小的numpy安装,并希望分享。

© www.soinside.com 2019 - 2024. All rights reserved.