【发布时间】:2021-10-28 20:37:11
【问题描述】:
是否可以将distroless 图像与构建包一起使用?
【问题讨论】:
是否可以将distroless 图像与构建包一起使用?
【问题讨论】:
这不一定是一个简单的问题,它取决于。
您可以创建一个 custom stack 和 custom builder,您可以使用 distroless。
如果您不确定这些 buildpack 术语,堆栈会提供用于构建和运行应用程序的基础映像。构建器是堆栈加上可以在该堆栈上运行的一组构建包的组合。
所以理论上,您的问题的答案是肯定的。难以回答的地方是您没有说明您需要运行的应用程序(语言/运行时?)或构建包(heroku、paketo 等?)。您的应用程序、语言运行时和构建包将需要能够在 distroless 上运行,这并非易事,因为它是一个极其简陋的容器映像。
简而言之,您需要更新问题以提供有关您的应用和要运行的构建包的更多详细信息,以获得更明确的答案。
在这里猜测一下,如果您正在运行 Paketo buildpacks,我可以说 Paketo 提供了一个类似于 distroless 的“小”映像(小于 20M)。您可以 a.) 考虑使用小堆栈,因为所有的繁重工作都已为您完成 或 b.) 如果您真的需要 distroless,您可以尝试将您的工作基于小堆栈。因为这也是一个精简的镜像,所以您可以在 tiny 上运行的 buildpack 和应用程序可能与您可以在 distroless 上运行的类似。
你可以找到tiny builder definition here,你可以找到tiny stack releases here和tiny stack source here。
【讨论】:
Procfile 不需要并且会破坏,如果您使用的是 Paketo buildpacks,它的启动命令不正确。只需删除文件和pack build 它应该可以工作。小堆栈应该可以工作,但不能,这是我的疏忽。构建器应该包含 Java buildpack,但它没有,抱歉。我会为此申请公关。同时,运行pb java-getting-started -B paketobuildpacks/builder:tiny -b paketo-buildpacks/java。 Procfile 也是如此,删除它。那会起作用的。