我使用 spring-boot-maven-plugin 来构建 docker 镜像。在底层,它使用 buildpacks (paketo)。我对 buildpacks 的了解非常有限。
问题是一个新需求:我们将使用 playwrite 库。此库需要在主机(如果我没记错的话,是浏览器引擎)中安装特定的二进制文件。
Playwrite 团队还为此准备了一个自定义 docker 镜像。如果我使用 dockerfiles,我只需在 mfFROM
指令中使用他们的镜像即可。
但是当涉及到 buildpacks 时,是否有办法配置 Spring Boot Maven 插件以在我的镜像上添加额外的二进制文件?还是我应该迁移到其他一些与旧版 dockerfile 兼容的maven 插件(比如这个),并重新获得对镜像创建的明确控制?
我没有特别的理由使用 buildpacks。我使用它们只是因为 spring-boot-maven-plugin 可以与它们配合使用。我不清楚它们是否比 dockerfiles 更好,所以我愿意尝试配置它们以包含二进制文件,或者,如果这不可能,则迁移到 dockerfiles 或其他替代方法来构建 docker 镜像。
一种方法是创建自定义 docker 镜像并使用另一个插件来构建它,例如 maven exec 插件。
下面是一个可用于生产的 Docker 镜像的示例,类似于 Buildpacks 为您生成的镜像:
您可以根据自己的需要自定义此图像。