2015-10-29 31 views
6

Tôi đang cố gắng cài đặt gọn gàng trong thùng chứa docker dựa trên Alpine 3.1. Tôi đang sử dụng Dockerfile sau:Cài đặt numpy trên 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 

này chạy tốt cho đến khi pip install numpy khi tôi nhận được lỗi sau:

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 cho cùng một lỗi.

Có bất kỳ bước cấu hình/cài đặt nào tôi bị thiếu không?

Trả lời

14

Nếu bạn không cần thiết phải cài đặt numpy từ pypi, bạn có thể cài đặt nó từ các kho lưu trữ trên núi cao. Gói có tên là py-numpy và nằm trong kho testing, xem here. Tối thiểu Dockerfile ví dụ mà làm việc cho tôi

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

Nội dung của tập tin repositories

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

này đang làm việc, nhưng tiếc là đó là NumPy cho python 2.7. Chúng tôi cần phiên bản cho 3.5 – leonprou

+2

Là bản cập nhật, bạn cần chuyển sang '@ community' ở mọi nơi thay vì' @ testing', ví dụ: 'py-numpy @ community' và' @community http: // dl-cdn.alpinelinux.org/alpine/edge/community' –

+0

Tôi đã thử tất cả mọi thứ trong bài đăng này bao gồm hình ảnh @ James-Endicott bên dưới và sự cố cài đặt luôn ở xung quanh NumPy. Cũng cố gắng https://github.com/WattyAB/docker.alpine.numerical-python mà tiếc là không hoạt động. Sẽ chỉ sống với hình ảnh 650MB .. – cardamom

2

Tôi đã gặp một chút rắc rối với điều này bản thân mình và, câu chuyện dài ngắn, tôi sẽ khuyến khích bạn để hỏi xem nó thực sự đáng giá. Numpy là rất lớn khi bạn bắt đầu thêm những thứ vào stack như gấu trúc, gpus, và scipy vì vậy lợi ích của việc xây dựng nó trên núi cao bị hạn chế, tiết kiệm hơn khi sử dụng Debian, Arch hoặc thậm chí là Ubuntu tương đối khiêm tốn khi 500MB không gian của bạn được bật thư viện này.

Điều đó đã được nói, tôi đã ném cùng một hình ảnh thực hiện. Tôi cần thiết như phụ thuộc thời gian xây dựng musl-dev, linux-headers và g ++. Tôi cũng vết thương lên cần phải thêm openblas từ cạnh cho một cái gì đó sau này trong ngăn xếp vì vậy nó có thể là một số phụ thuộc từ đó được yêu cầu quá. Nhưng tôi tin rằng chỉ cần thêm ba thư viện cũ với

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

phải đủ để ngăn chặn lỗi gcc bạn đang nhận được. Bạn có thể xem hình ảnh ở https://hub.docker.com/r/o76923/alpine-numpy-stack/

0

Hãy thử điều này:

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 
Các vấn đề liên quan