0

如 Cloud Native Buildpack features 中所述,它们添加rebase功能

无需重新构建即可即时更新基础映像。

在 buildpacks 文档中,Paketo 的 pack CLI 的 rebase 操作被描述为如下执行:

pack rebase my-app:my-tag

由于这是 Cloud Native Buildpacks 的关键特性之一 - 并且是大多数基于微服务的架构都迫切需要的特性 - 很高兴知道如何在 CI/CD 管道(如 GitHub Actions 或像 renovate 这样的依赖管理工具。Renovate 已经支持 Docker,但是因为没有 Paketo 的依赖管理文件,所以它现在不会创建 Pull Requests。

所以问题是 Paketo/Buildpacks 的 rebase 操作如何在没有人工交互的情况下自动创建 PR?

4

1 回答 1

1

pack rebase命令将换出容器使用的运行映像。运行映像是您在构建映像时选择的构建器的一部分。

例如,有 Paketopaketobuildpacks/builder:base构建器。您可以运行pack inspect-builder paketobuildpacks/builder:base并打包会为您提供有关构建器的大量详细信息。其中包括一个部分,告诉您此构建器的运行映像以及使用此构建器构建的任何映像。

Run Images:
  index.docker.io/paketobuildpacks/run:base-cnb
  gcr.io/paketo-buildpacks/run:base-cnb

请注意,列出了两个,但它们是相同的图像,只是托管在两个不同的地方。

鉴于此,您将需要设置 CI 系统以监视构建器的运行映像的新版本。当有新的运行映像时,您需要pack rebase更新映像以使用最新的运行映像。

我没有使用过 Renovate,但听起来 Docker 支持可能就是你想要的。将其指向您的基本图像并使用它来触发pack rebase命令。

我们有一些 Github 操作来监控 Paketo 图像(不是为了这个特定目的,但想法是一样的)。没有一个很好的方法来做到这一点(至少在我写这篇文章的时候),但我们使用时间表定期检查图像的更新。然后启动工作流程,在这种情况下,工作流程基本上是运行pack rebase.

于 2021-05-19T02:23:32.263 回答