用docker搭建python项目运行环境
2017-02-20 12:42
661 查看
Docker Hub镜像加速器
安装docker:curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
参考这篇注册阿里开发者,拿到专属加速器地址,类似于:https://xxxx.mirror.aliyuncs.com
参考Docker加速器下面的说明配置并重启docker,我是ubuntu 16.04,如下:
sudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/mirror.conf <<-'EOF' [Service] ExecStart=/usr/bin/docker daemon -H fd:// --registry-mirror=https://xxxx.mirror.aliyuncs.com EOF sudo systemctl daemon-reload sudo systemctl restart docker
写Dockerfile
# image for portfolio FROM ubuntu:16.04 MAINTAINER wwy version: 0.1 ENV LD_LIBRARY_PATH=/usr/local/lib COPY ./sources.list /etc/apt/ RUN depends='make r-base r-base-dev' &&\ apt-get update &&\ apt-get install -y $depends #anaconda COPY ./Anaconda2-4.2.0-Linux-x86_64.sh /tmp/ RUN bash /tmp/Anaconda2-4.2.0-Linux-x86_64.sh -b ENV PATH /root/anaconda2/bin:$PATH #ta-lib COPY ./ta-lib-0.4.0-src.tar.gz /tmp/ RUN cd /tmp &&\ tar -xzf ta-lib-0.4.0-src.tar.gz &&\ cd /tmp/ta-lib &&\ ./configure &&\ make &&\ make install #pip COPY ./pip.conf /root/.config/pip/ COPY ./SuiteSparse-4.5.3.tar.gz /tmp/ ENV CVXOPT_SUITESPARSE_SRC_DIR=/tmp/SuiteSparse RUN cd /tmp &&\ tar xzf SuiteSparse-4.5.3.tar.gz &&\ pip install celery flasgger flask rpy2 arch pymongo grpc protobuf cvxopt ta-lib grpcio seaborn #Qi4Trade COPY Qi4Trade /tmp/Qi4Trade RUN cd /tmp/Qi4Trade/trunk &&\ python setup.py install #SITxuk COPY SITxuk /tmp/SITxuk RUN cd /tmp &&\ R CMD build SITxuk &&\ R CMD INSTALL SITxuk_0.1.0.tar.gz #ndparser COPY ndparser.so /root/anaconda2/lib/python2.7/site-packages/ COPY ndparser-1.0-py2.7.egg-info /root/anaconda2/lib/python2.7/site-packages/ #clear RUN apt-get purge -y --auto-remove make &&\ apt-get clean &&\ rm -rf /tmp/* &&\ rm -rf /var/lib/apt/lists/* #porfolio-web COPY portfolio-web /root/portfolio-web COPY libgomp.so.1.0.0 /root/anaconda2/lib/ ENV FLASK_SETTINGS=/root/portfolio-web/trunk/api/dev ENV PYTHONPATH=/root/portfolio-web/trunk WORKDIR /root/portfolio-web/trunk EXPOSE 8686 CMD ["python","api/server.py"] # Add Tini. Tini operates as a process subreaper for jupyter. This prevents kernel crashes. ENV TINI_VERSION v0.6.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/bin/tini RUN chmod +x /usr/bin/tini ENTRYPOINT ["/usr/bin/tini", "--"] EXPOSE 8888 CMD ["jupyter","notebook","--port=8888","--no-browser","--ip=0.0.0.0"]
Dockerfile要注意的点
用&&\把所有命令串起来在一个Run里执行,避免产生太多层可以把/etc/apt/sources.list拷过去,加速apt-get install; 把pip.conf拷到/root/.config/pip/pip.conf,指向douban的源,加速pip install
所有安装都是silent mode, 包括: apt-get -y、anaconda -b等
报pip not found: anaconda不会自动把bin加入PATH,需要手工加:
ENV PATH /root/anaconda2/bin:$PATH
每个阶段的命令写在一起,从COPY+ENV+RUN,这样万一下面的COPY改了,还能重用以前的cache
COPY要这么写:
COPY ta-lib /tmp/ta-lib,如果只是
COPY ta-lib /tmp/只会把ta-lib里面的内容拷过去
国内的镜像源有时apt-get install的时候会报"Hash Sum mismatch"的错误,不覆盖/etc/apt/sources.list,用官方的就好
很多server比如nginx、jupyter都默认监听localhost,要改成0.0.0.0,才能在容器外访问
build + export image
docker build -t test:v0.1 . docker run -i -p 8686:8686 test:v0.1 docker save test:v0.1 | gzip > portfolio.tar.zip //复制到其他机器上,导入 docker load -i portfolio.tar.zip
相关文章推荐
- centOs7下安装docker并搭建运行java项目环境
- 在Lubuntu上搭建python3.4和OpenCV开发环境并且运行DNQ-Atari深度学习项目
- Mac下搭建eclipse android-cocos2d-x环境并创建android ndk新项目导入到eclipse运行
- Mac下配置Android NDK环境并搭建Cocos2d-x环境并Eclipse正常编译运行Cocos2dX自带TestsDemo项目
- 使用 Docker 搭建 Java Web 运行环境
- 使用 Docker 搭建 Java Web 运行环境
- Mac下配置Android NDK环境并搭建Cocos2d-x环境并Eclipse正常编译运行Cocos2dX自带TestsDemo项目!
- maven环境搭建与maven项目运行
- 转:使用 Docker 搭建 Java Web 运行环境
- Mac下配置Android NDK环境并搭建Cocos2d-x环境并Eclipse正常编译运行Cocos2dX自带TestsDemo项目(转载)
- 使用 Docker 搭建 Java Web 运行环境
- 【iOS-cocos2d-X 游戏开发之三】Mac下配置Android NDK环境并搭建Cocos2d-x环境并Eclipse正常编译运行Cocos2dX自带TestsDemo项目!
- cocos2dx v3.0 正式版 搭建环境 创建项目 运行到android
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
- Eclipse搭建Python开发环境,项目中不出现PyDev选项
- python 搭建的服务器上面 运行项目出错的记录
- win7环境下.net的web环境搭建及其项目的加载运行
- OSChina 技术周刊第二十期 —— 使用 Docker 搭建 Java Web 运行环境
- phonegap 4.2 环境搭建 及 项目创建 运行
- Python-Web运行环境搭建中遇到的问题-(ImportError: No module named setuptools)