在 Docker Alpine 上安装 seaborn
Installing seaborn on Docker Alpine
我正在尝试使用此 Dockerfile 安装 seaborn
:
FROM alpine:latest
RUN apk add --update python py-pip python-dev
RUN pip install seaborn
CMD python
我得到的错误与 numpy
和 scipy
(seaborn
要求)有关。开头为:
/tmp/easy_install-nvj61E/numpy-1.11.1/setup.py:327: UserWarning:
Unrecognized setuptools command, proceeding with generating Cython
sources and expanding templates
并以
结尾
File "numpy/core/setup.py", line 654, in get_mathlib_info
RuntimeError: Broken toolchain: cannot link a simple C program
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-DZ4cXr/scipy/
The command '/bin/sh -c pip install seaborn' returned a non-zero code: 1
知道如何解决这个问题吗?
要修复此错误,您需要安装 gcc
:apk add gcc
。
但是你会看到你会遇到一个新的错误,因为 numpy、matplotlip 和 scipy 有几个依赖项。您还需要安装 gfortran
、musl-dev
、freetype-dev
等
这是一个基于您初始文件的 Dockerfile,它将安装这些依赖项以及 seaborn
:
FROM alpine:latest
# install dependencies
# the lapack package is only in the community repository
RUN echo "http://dl-4.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk --update add --no-cache \
lapack-dev \
gcc \
freetype-dev
RUN apk add python py-pip python-dev
# Install dependencies
RUN apk add --no-cache --virtual .build-deps \
gfortran \
musl-dev \
g++
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
RUN pip install seaborn
# removing dependencies
RUN apk del .build-deps
CMD python
您会注意到我正在使用 apk-del .build-deps
删除依赖项以限制图像的大小 (http://www.sandtable.com/reduce-docker-image-sizes-using-alpine/)。
就我个人而言,我还必须安装 ca-certificates,但您似乎没有这个问题。
注意:您还可以从 python:2.7-alpine
映像构建映像以避免安装 python 和 pip 自己。
我正在尝试使用此 Dockerfile 安装 seaborn
:
FROM alpine:latest
RUN apk add --update python py-pip python-dev
RUN pip install seaborn
CMD python
我得到的错误与 numpy
和 scipy
(seaborn
要求)有关。开头为:
/tmp/easy_install-nvj61E/numpy-1.11.1/setup.py:327: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
并以
结尾File "numpy/core/setup.py", line 654, in get_mathlib_info
RuntimeError: Broken toolchain: cannot link a simple C program
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-DZ4cXr/scipy/
The command '/bin/sh -c pip install seaborn' returned a non-zero code: 1
知道如何解决这个问题吗?
要修复此错误,您需要安装 gcc
:apk add gcc
。
但是你会看到你会遇到一个新的错误,因为 numpy、matplotlip 和 scipy 有几个依赖项。您还需要安装 gfortran
、musl-dev
、freetype-dev
等
这是一个基于您初始文件的 Dockerfile,它将安装这些依赖项以及 seaborn
:
FROM alpine:latest
# install dependencies
# the lapack package is only in the community repository
RUN echo "http://dl-4.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk --update add --no-cache \
lapack-dev \
gcc \
freetype-dev
RUN apk add python py-pip python-dev
# Install dependencies
RUN apk add --no-cache --virtual .build-deps \
gfortran \
musl-dev \
g++
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
RUN pip install seaborn
# removing dependencies
RUN apk del .build-deps
CMD python
您会注意到我正在使用 apk-del .build-deps
删除依赖项以限制图像的大小 (http://www.sandtable.com/reduce-docker-image-sizes-using-alpine/)。
就我个人而言,我还必须安装 ca-certificates,但您似乎没有这个问题。
注意:您还可以从 python:2.7-alpine
映像构建映像以避免安装 python 和 pip 自己。