【问题标题】:Docker Hub: Repository Links for Automated BuildsDocker Hub:自动构建的存储库链接
【发布时间】:2019-09-27 10:12:33
【问题描述】:

Docker Hub 中,可以通过单击Builds 选项卡右上角的相应按钮来配置Automated Builds。除了在推送到包含Dockerfile 的源代码存储库时配置重建之外,还可以将“Repository Links”设置为“Enable for Base Image”。这是为了“只要基础镜像在 Docker Hub 上更新,就会在这个存储库中触发构建”。

我让它在一些简单的玩具示例案例中工作。但它无法触发更复杂的示例。我的Dockerfile 看起来像这样:

FROM mediawiki AS orig

FROM alpine AS build
COPY --from=orig <file> /
RUN <patch-command of file>

FROM mediawiki
COPY --from=build <file> /

如果(任何一个)基础映像得到更新,为什么重建不会触发?这是因为我在Dockerfile 中有不止一个FROM 行吗?或者警告“仅适用于非官方图像”是否适用于基础图像而不是目标图像?

如果我上面最后一个问题的答案是“是”,是否有某种方法仍然可以在基础映像更新上获得所需的重建效果?

【问题讨论】:

    标签: docker dockerhub


    【解决方案1】:

    “仅适用于非官方图片”

    我很确定它不适用于任何官方图像,如 alpinegolang 等。原因是如此多的图像依赖于这些基础图像,因此单个更新将是一个巨大的负担他们的基础设施来重建每个人的形象。

    我的猜测是确定一个图像是否使用官方图像的逻辑是非常基本的,如果它在你的 Dockerfile 中检测到FROM &lt;some-official-image&gt; anywhere 那么它可能不会自动重建.

    【讨论】:

    • 我会将这个答案解释为“警告确实意味着基本图像,而不是目标图像”,并有一些很好的理由说明原因。知道如何绕过它吗?很多人一定有这个问题......
    • 对于我的项目,我不在 Docker Hub 上构建。我使用 CircleCI 或新的 GitHub Actions 构建,然后推送到 Docker Hub。为了确保基本图像得到定期更新,我使用 renovatebot。当它找到更新时,它会发送一个 PR。您合并 PR 并发布图像的新版本。 renovatebot.com
    • 这是一个示例 renovatebot PR,它发送到我的一张图片。 github.com/peter-evans/liche-docker/pull/6
    猜你喜欢
    • 2019-04-12
    • 1970-01-01
    • 2019-12-24
    • 2021-03-07
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多