【问题标题】:Does Docker Hub put a big strain on package hosts?Docker Hub 会给包主机带来很大压力吗?
【发布时间】:2018-08-19 15:18:56
【问题描述】:

我有几个相互依赖的基于 Docker 的项目:

  • project 1 取决于 python:3-alpine
  • project 2 取决于 project 1
  • project 3 取决于 project 1

等等。等等

因此,我所有的自动构建都如上所述链接。当我更新项目 2 时,项目 3 4 5 都会自动重建。这是一个非常巧妙的功能。

问题是,这意味着每当更新较低级别的项目时,都会触发大量项目的大量重建。在更新非常低级别的东西的情况下,例如pythonnode,我可以想象 Docker Hub 正在触发大量重建。

然后我的问题是:这不会给像 PyPI 这样的包主机带来很多负担吗?因为我的每个项目都包含类似这样的一行:

RUN pip install -r requirements.txt

这会使 PyPI 降低所有要求,每次都重新下载而无法使用本地缓存,因为 Docker 容器对于每个构建都是“全新的”。

我可以做些什么来减少我的项目正在产生的影响,或者这是否通过 Docker Hub 上的“魔法”以某种方式解决?在没有这种魔力的情况下,是否有我应该遵循的最佳实践?

【问题讨论】:

    标签: python docker dockerfile pypi dockerhub


    【解决方案1】:

    在构建成功后,将缓存目录保存在 docker 之外的某个地方的持久存储中。恢复每个新容器中的缓存。

    【讨论】:

    • 你有这样的项目示例吗?如何在不损害自动化构建所涉及的信任的情况下做到这一点?
    • 任何商业 CI(持续集成)都会这样做——我知道 Travis CI 和 AppVeyor。 AFAIK Travis 发布了他们的源代码,因此您可以尝试查找他们是如何做到的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    相关资源
    最近更新 更多