我正在尝试使用此tutorial创建自定义构建包。我想将此构建包与其他可用的构建包一起用于spring boot应用程序之一。构建包使用apt安装tesseract。但我得到了以下异常:
Error when installing tesseract in buildpacks base image
我的理解是这个构建器图像中的cnb
是没有这些权限的用户。添加sudo
会产生command not found
。
解决这个问题的一种方法是创建一个Dockerfile,并以root用户的身份在其中执行所需的任何操作,然后使用生成的映像作为构建器的基本映像。pack build
没有像docker container run
那样传递给用户的选项。但这可能不如buildpack灵活,因为后者可以在检测阶段使用某些条件来选择或删除,因此我可以在spring-boot-maven-plugin配置中指定所有的buildpack。由于CNB的整个目标是避免/替换Dockerfile,这里有没有我遗漏的选项,或者这是唯一的方法?
PS:我试着以root用户身份运行基础构建器,并实现了所需的功能。
发布于 2021-07-21 02:22:47
有一个社区支持的apt-buildpack可能会有所帮助。我相信你会在你的仓库中创建一个包含如下内容的Aptfile
:
tesseract
根据您运行CNBs的方式,您可以使用如下命令将其添加到您的构建中:
$ pack build -b fagiani/apt@0.1.0
有关更多信息,请参阅fagiani/apt的注册表项
https://stackoverflow.com/questions/68459456
复制相似问题