上QQ阅读APP看书,第一时间看更新
2.5.1 开发镜像
本节使用Python的Docker镜像作为将数据科学项目固化的开发环境。网上有很多基于Python的镜像,比如Anaconda、sklearn、深度学习(比如TensorFlow、PandlePandle)等。这里依然推荐Anaconda镜像或裁剪版的Anaconda。当然,也鼓励用户使用自定义的镜像。为了演示如何自定义镜像,这里给出了一份Dockerfile文件(可理解为裁剪版的Anaconda),其中包含了使用sklearn进行机器学习建模所需的基础常见包。大家可以依据此Dockerfile自己构建,也可在Docker仓库搜索chansonz/ml_dev_env并下载。
FROM ubuntu:bionic-20190204 LABEL MAINTAINER="Chanson Zhang <xtdwxk@gmail.com>" ENV LC_ALL=C.UTF-8 ENV LANG=C.UTF-8 ENV PYTHON_PACKAGES="\ numpy==1.16.2 pandas==0.24.1 \ matplotlib==3.0.3 seaborn==0.9.0 missingno==0.4.1\ scikit-learn==0.20.3 scikit-image==0.14.2 \ imblearn==0.0 minepy== 1.2.3 lime== 0.1.1.32 \ graphviz==0.10.1 imbalanced-learn== 0.4.3 shap==0.28.5 \ statsmodels== 0.9.0 xgboost ==0.82 lightgbm ==2.2.3 jupyter jupyter_contrib_nbextensions \ # 省略了部分包 " RUN apt-get update RUN apt-get install -y python3 RUN apt-get install -y python3-pip RUN pip3 install $PYTHON_PACKAGES # config RUN jupyter contrib nbextension install --user && \ rm -rf ~/.cache
笔者使用命令docker build-t chansonz/ml_dev_env:v1.0构建镜像,使用命令docker push chansonz/ml_dev_env:v1.0将镜像提交到公开仓库。
如前所述,如果要使用Pipenv工作流的方式,则需要使用Pipfile文件。下面给出基于Pipenv的Dockerfile文件示例:
FROM ubuntu:bionic-20190204 LABEL MAINTAINER="Chanson Zhang <xtdwxk@gmail.com>" ENV LC_ALL=C.UTF-8 ENV LANG=C.UTF-8 RUN mkdir /root/tmp COPY Pipfile* /root/tmp WORKDIR /root/tmp RUN apt-get update RUN apt-get install -y python3 RUN apt-get install -y python3-pip RUN pip3 install pipenv RUN pip3 install jupyter # 使用 Pipfile、Pipfile.lock RUN pipenv install --three --system && \ jupyter contrib nbextension install --user && \ rm -rf ~/.cache WORKDIR / RUN rm -rf /root/tmp