我有一些基于Docker的项目都相互依赖:
project 1
取决于python:3-alpine
project 2
取决于project 1
project 3
取决于project 1
等。等
因此,我的所有自动构建都如上所述进行链接。当我更新项目2时,项目3 4 5都会自动重建。这是一个非常漂亮的功能。
问题是,这意味着每当更新较低级别的项目时,都会触发大量项目的大量重建。在更新非常低级的情况下,例如python
或node
,我可以想象Docker Hub正在触发大量重建。
我的问题是:这不会给像PyPI这样的包主机带来很多负担吗?由于我的每个项目都包含类似的行:
RUN pip install -r requirements.txt
这会降低PyPI以降低所有要求,每次重新下载而无法使用本地缓存,因为Docker容器对于每个构建都是“全新的”。
我能做些什么来减轻我的项目所产生的影响,还是在Docker Hub上用“魔法”解决了这个问题?如果没有这样的魔力,我应该遵循最佳实践吗?
答案 0 :(得分:0)
成功构建后,将缓存目录保存在持久存储中的docker之外的某个位置。恢复每个新容器中的缓存。