尝试构建包含sklearn软件包的基于阿尔卑斯的docker映像时出现错误。
我尝试了一些pip安装变体,不同的软件包组合以及sklearn的过时版本,以查看它们是否兼容。我还以-it模式运行了容器,并尝试从那里手动安装软件包。当我删除sklearn行时,将构建Dockerfile并且容器运行良好。 Sklearn在我构建的Ubuntu:最新Dockerfile中工作,但是我正试图减少占用空间,因此我希望能使其在高山上运行...
这是我的Dockerfile代码:
FROM alpine:latest
RUN apk upgrade --no-cache \
&& apk update \
&& apk add --no-cache \
musl \
build-base \
python3 \
python3-dev \
postgresql-dev \
bash \
git \
&& pip3 install --no-cache-dir --upgrade pip \
&& pip3 install sklearn \
&& rm -rf /var/cache/* \
&& rm -rf /root/.cache/*
这是我得到的错误:
ERROR: Command "/usr/bin/python3.6 /usr/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpqjsz0004" failed with error code 1 in /tmp/pip-install-xlvbli9u/scipy
答案 0 :(得分:0)
Alpine Linux不支持PEP513。我发现类似这样的方法有效:
RUN apk add --no-cache gcc g++ gfortran lapack-dev libffi-dev libressl-dev musl-dev && \
mkdir scipy && cd scipy && \
wget https://github.com/scipy/scipy/releases/download/v1.3.2/scipy-1.3.2.tar.gz && \
tar -xvf scipy-1.3.2.tar.gz && \
cd scipy-1.3.2 && \
python3 -m pip --no-cache-dir install .