构builddocker for Python的最佳实践 – 需求文件或单独安装

我正在尝试为我的Python / Django应用程序创build一个docker镜像。 哪种方法最好遵循?

1.使用需求文件

ADD requirements.txt /code/requirements.txt RUN pip install -r requirements.txt OR

2.单独安装包装

RUN pip install package1 package2 package3 RUN pip install package4 package5

我发现第二种方法的一个好处是caching可以重新使用。 每一个新的pip安装行都会在新版本发布时添加,也就是说,一个发行版在pip安装包上最多只有一行。

我觉得第一种方法会使caching失效,因为在添加新的包时需求文件将会改变,并且所有的包都被重新安装。

你更喜欢哪种方法?