如何使用Paketo.io/Cloud Native Buildpacks Docker image rebase(类似



如Cloud Native Buildpack功能中所述,它们添加了的重新定基功能

无需重新构建即可即时更新基本图像。

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

pack rebase my-app:my-tag

由于这是Cloud Native Buildpacks的关键功能之一,也是大多数基于微服务的架构迫切需要的功能,因此很高兴知道如何在CI/CD管道(如GitHub Actions(或依赖管理工具(如翻新(中实现自动化。Renovate已经支持Docker,但由于没有针对Paketo的依赖性管理文件,它现在不会创建Pull Request。

因此,问题是如何在没有人工交互的情况下自动进行Paketo/Buildpacks重新基础操作以创建PR?

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

例如,有一个Paketopaketobuildpacks/builder:base生成器。您可以运行pack inspect-builder paketobuildpacks/builder:base,pack将为您提供有关构建器的一系列详细信息。其中包括一个部分,告诉你这个构建器的运行图像以及使用这个构建器构建的任何图像。

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

最新更新