Dockerfile中使用pip安装依赖包的最佳实践

那年春风煦煦青草百里,我背上行囊踏上一条不知归途的路程。
后来春风渐去,光阴难挨,偏偏冬日又有白雪飘飘覆了十方天地。
再后来我才知道,冬雪虽刺骨,却藏着那归途。
从那时起,我便一肩挑着春风,一肩挑着冬雪,如此走过了千山万水。
四季有了温度,也有了方向。

RT

一、Dockerfile中使用pip安装依赖包的最佳实践

使用pipreqs将项目中引用和使用的python包导出到requirements.txt文件中,然后在Dockerfile中加入以下语句:

1
2
3
4
WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

当然,受限于网络问题和pip官方源链接速度较慢,我们也可用如下方式最小化改动使用pip国内源安装:

1
2
3
4
WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --default-timeout=300 -i https://pypi.mirrors.ustc.edu.cn/simple --no-cache-dir -r requirements.txt

其中--default-timeout=300解决pip连接超时的问题,-i https://pypi.mirrors.ustc.edu.cn/simple显式指定pip更新channel。

二、pip (pypi) 中国大陆镜像源

  1. 清华大学源: https://pypi.tuna.tsinghua.edu.cn/simple/
  2. 豆瓣源: http://pypi.douban.com/simple/
  3. 腾讯源: http://mirrors.cloud.tencent.com/pypi/simple/
  4. 阿里源: https://mirrors.aliyun.com/pypi/simple/

Reference

  1. Python - Docker Official Images