【问题标题】:Buildpacks:Update of buildpacks构建包:构建包的更新
【发布时间】:2021-09-10 09:03:05
【问题描述】:

我正在研究构建包以创建不带 Dockerfile 的容器映像。一个好处应该是构建包得到管理,如果发现一些漏洞,它会很快更新。所以它应该让开发人员从这项任务中解脱出来。但是,我如何知道我使用的 buildpack 何时更新?也许它们现在也不再兼容我的代码?

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: docker buildpack


【解决方案1】:

当您运行pack build 之类的命令时,它会自动尝试下载您正在使用的最新/最新版本的构建包(从技术上讲,它会尝试下载最新的“builder”版本)。您可以使用--pull-policy 选项控制/覆盖它,该选项可以设置为alwaysneverif-not-present

了解是否有可用的新版本可能取决于您使用的构建包和构建器。您可以尝试构建器图像的docker pullpack buildpack pull。如果它没有拉任何东西,那么就没有更新。

此外,Buildpack Registry 包含已在此处发布的构建包的发布信息。

【讨论】:

  • 另一种思维方式,但除非您指定要运行的特定构建包,例如pack -b,否则您实际上不需要关心构建包是否已更新。您真正需要注意的是构建器。构建器捆绑了所有构建包,构建器的作者将为您保持最新。 buildpacks 的另一个不错的方面。正如@codefinger 所说,如果您将拉取策略设置为始终,pack 将检查并确保您始终拥有最新的构建器。否则,请查看您的 CI 以查看它是否可以监视 docker repo 的更新。大多数都可以。
  • 感谢您的详细解答!但是,从不使用 :latest 在生产中准备好的 Dockerfile 是否与 docker “最佳实践”相矛盾?因为生成的图像会在没有“直接知道”的情况下发生变化。从 Dockerfiles 迁移到 buildpacks 时,我很想至少从公共存储库中使用“--pull-policy never”。
  • 我应该补充的一点是,在大多数 CVE 案例中,buildpack 本身不需要更新。 buildpacks 能够通过重新运行它们来应用安全补丁运行时和依赖项。
  • @Oli 使用 :latest 是可选的。您还可以显式固定到构建器/构建包映像的版本。但是,您需要自己检查该图像的更新
猜你喜欢
  • 1970-01-01
  • 2021-01-23
  • 2019-11-26
  • 2014-10-25
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
相关资源
最近更新 更多