我正在为一个数据科学项目构建一个docker图像。在
我通过RUN apk add 安装核心依赖项。在
Dockerfile开发FROM python:3.6-alpine
#SOFTWARE PACKAGES
ENV PACKAGES="\
dumb-init \
musl \
libc6-compat \
linux-headers \
build-base \
bash \
git \
ca-certificates \
freetype \
libgfortran \
libgcc \
libstdc++ \
openblas \
tcl \
tk \
libssl1.0 \
"
# PYTHON DATA SCIENCE PACKAGES
ENV PYTHON_PACKAGES="\
numpy \
matplotlib \
scipy \
scikit-learn \
pandas \
nltk \
"
RUN apk add --no-cache --virtual build-dependencies python3 \
&& apk add --virtual build-runtime \
build-base python3-dev openblas-dev freetype-dev pkgconfig gfortran \
&& ln -s /usr/include/locale.h /usr/include/xlocale.h \
&& python3 -m ensurepip \
&& rm -r /usr/lib/python*/ensurepip \
&& pip3 install --upgrade pip setuptools \
&& ln -sf /usr/bin/python3 /usr/bin/python \
&& ln -sf pip3 /usr/bin/pip \
&& rm -r /root/.cache \
&& pip install --no-cache-dir $PYTHON_PACKAGES \
&& apk del build-runtime \
&& apk add --no-cache --virtual build-dependencies $PACKAGES \
&& rm -rf /var/cache/apk/*
# add and install requirements
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt
所有内容都建立到pandas,此时出现此错误:
^{pr2}$
但是numpy已经预先安装:Running setup.py install for numpy: finished with status 'done'
还没有失败,我将pandas==0.20.3(这个版本在我的条件下工作py36env)移到requirements.txt中,并且它被安装了,如日志所示:Successfully built: pandas
Installing collected packages: pandas
Successfully installed: pandas-0.20.3
但是,在生成后,运行容器会记录以下错误:users_1 | File "/usr/src/app/project/api/classifiers/metadata/learn.py", line 14, in
users_1 | import pandas as pd
users_1 | ModuleNotFoundError: No module named 'pandas'
所以它是由pip安装的,但找不到?
如何通过RUN apk add安装pandas,以保持我的数据科学项目的构建一致性?在