包含更改容器安装源、pip源、临时使用代理上网,所以集成备用
注意:目前python3.8不能安装pymssql
FROM python:3.7-slim
MAINTAINER liu8816
ENV BOTTLE_VER 0.12.18
COPY requirements.txt /data/requirements.txt
RUN set -ex \
&& export http_proxy=http://136.15.2.88:900/ \
&& export https_proxy=http://136.15.2.88:900/ \
&& echo "# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释">/etc/apt/sources.list \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free">>/etc/apt/sources.list \
&& echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free">>/etc/apt/sources.list \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free">>/etc/apt/sources.list \
&& echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free">>/etc/apt/sources.list \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free">>/etc/apt/sources.list \
&& echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free">>/etc/apt/sources.list \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free">>/etc/apt/sources.list \
&& echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free">>/etc/apt/sources.list \
&& apt-get update \
&& apt-get install gcc -y \
&& apt-get install procps -y \
&& pip config set global.index-url http://mirrors.aliyun.com/pypi/simple \
&& pip config set install.trusted-host mirrors.aliyun.com \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtim \
&& pip install Cython \
&& pip install uwsgi \
&& sed -ri '/pymssql==/d' /data/requirements.txt \
&& sed -ri '/psycopg2==/d' /data/requirements.txt \
&& sed -ri 's/==[0-9]*(\.*[0-9])*//' /data/requirements.txt \
&& pip install --no-cache-dir -r /data/requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \
&& pip install numpy \
&& pip install matplotlib \
&& pip install pandas \
&& pip install pynacl \
&& pip install gevent \
&& pip install psycopg2-binary \
&& unset http_proxy && unset https_proxy
RUN rm -rf /var/cache/apk/*
EXPOSE 8091 8797
CMD /bin/sh
ENTRYPOINT ["uwsgi","--ini","/uwsgi/uwsgi_m.ini"]
可在此基础上再次修改生成适合特定生产用的uwsgi:
FROM py37:v2_slim
MAINTAINER liu8816
EXPOSE 8797
RUN set -ex \
&& export http_proxy=http://136.15.2.88:900/ \
&& export https_proxy=http://136.155.2.88:900/ \
&& apt-get install net-tools -y \
&& pip config set global.index-url http://mirrors.aliyun.com/pypi/simple \
&& pip config set install.trusted-host mirrors.aliyun.com \
&& pip install bottle_websocket -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \
&& unset http_proxy && unset https_proxy
RUN rm -rf /var/cache/apk/*
ENTRYPOINT ["/bin/sh"]