在自定义云原生 buildpack 中使用 apt install

Using apt install in custom cloud native buildpack

我正在尝试使用此 tutorial 创建自定义构建包。我想将此 buildpack 与其他可用的 buildpack 一起用于 spring 引导应用程序之一。 buildpack 使用 apt 安装 tesseract。但我收到以下异常:

Error when installing tesseract in buildpacks base image

我的理解是这个构建器镜像 cnb 作为没有这些权限的用户。添加 sudo 得到 command not found.

解决这个问题的一种方法是创建一个以此为基础的 Dockerfile 并以 root 用户身份在那里做任何需要的事情,并将生成的图像用作构建器基础图像。 pack build 没有像 docker container run 这样的传递用户的选项。但这可能不如构建包灵活,因为后者可以在检测阶段使用某些条件来选择或消除,因此我可以在 spring-boot-maven-plugin 配置中指定所有构建包。由于 CNB 的整个 objective 是 avoid/replace Dockerfiles,我在这里是否缺少任何选项,或者这是唯一的方法吗?

PS:我以 root 身份尝试 运行 基础构建器并实现了我需要的。

有一个受支持的社区 apt-buildpack 可能会有所帮助。我相信您会在您的回购协议中创建一个 Aptfile,其内容如下:

tesseract

根据您的 运行 CNB,您可以使用如下命令将其添加到您的构建中:

$ pack build -b fagiani/apt@0.1.0

有关详细信息,请参阅 fagiani/apt

的注册表项