2015-10-29 16 views
6

Ich versuche, numpy in einem Docker-Container basierend auf Alpine 3.1 zu installieren. Ich verwende den folgenden Dockerfile:Installieren von numpy auf Docker Alpine

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 

Diese feine bis pip install numpy läuft, wenn ich die folgende Fehlermeldung erhalten:

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 gibt den gleichen Fehler.

Gibt es irgendwelche Config/Installationsschritte, die ich vermisse?

Antwort

14

Wenn Sie nicht unbedingt numpy von pypi installieren müssen, könnten Sie es aus alpinen Repositories installieren. Das Paket trägt den Namen py-numpy und befindet sich in testing Repository, siehe here. Minimal Dockerfile Beispiel, das für mich

FROM alpine:3.2 
ADD repositories /etc/apk/repositories 
RUN apk add --update python python-dev gfortran py-pip build-base [email protected] 

Inhalt von repositories Datei funktioniert

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

Dies funktioniert, aber leider das ist numpy für Python 2.7. Wir benötigen eine Version für 3.5 – leonprou

+2

Als Update müssen Sie überall zu '@ ​​community' anstelle von' @ testing' wechseln, z. 'py-numpy @ community' und' @community http: // dl-cdn.alpinelinux.org/alpine/rande/community' –

+0

Ich habe alles in diesem Post einschließlich @ James-Endicott Bild unten versucht und die Installation stürzt immer um NumPy. Auch versucht https://github.com/WattyAB/docker.alpine.numerical-python, die leider nicht funktioniert. Wird nur mit einem 650MB Bild leben. – cardamom

2

Ich habe mich mit diesem ein wenig Mühe mit und lange Geschichte kurz, ich möchte Sie ermutigen, zu fragen, ob es ist wirklich die Mühe wert. Numpy ist riesig, wenn man Dinge wie Pandas, Gpus und Scipy zum Stack hinzufügt, so dass der Nutzen auf Alpin begrenzt ist, die Einsparungen gegenüber Debian, Arch oder sogar Ubuntu sind relativ bescheiden, wenn 500 MB deines Space auf dem Server sind diese Bibliothek sowieso.

Das gesagt wurde, habe ich ein Bild zusammen, das es tut. Ich brauchte als Build-Time-Abhängigkeiten musl-dev, linux-headers und g ++. Ich musste auch OpenBlas von der Kante für etwas später im Stapel hinzufügen, so dass es möglich ist, dass einige Abhängigkeiten davon auch benötigt werden. Aber ich glaube, nur das Hinzufügen der drei ehemaligen Bibliotheken mit

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

sollte den gcc Fehler zu verhindern, ausreichend sein, Sie bekommen. Sie können dies das Bild unten an https://hub.docker.com/r/o76923/alpine-numpy-stack/

0

Versuchen:

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 
Verwandte Themen