Docker 中通过 buildpack 构建的 Spring Boot 无法加载字体

Bar*_*cki 5 buildpack spring-boot-gradle-plugin paketo

我的 Spring Boot 应用程序在 Docker 中运行,并由gradlew bootBuildImage. 在 Docker 容器中运行时应用程序无法加载字体

Caused by: java.lang.NullPointerException
    at java.desktop/sun.awt.FontConfiguration.getVersion(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

根本原因似乎是缺少fontconfig软件包 ttf-dejavu。使用时Dockerfile,可以使用apk addyumapt-get等轻松安装这些软件包

但是https://github.com/paketo-buildpacks/spring-boothttps://github.com/paketo-buildpacks/bellsoft-liberica没有安装其他软件包的选项。

是否有构建包(或配置选项)可以构建具有字体支持的 Docker 映像?

Mic*_*fel 1

您可以在事后处理图像。示例 Dockerfile 如下所示:

FROM backend:latest

USER root # root for apt
RUN apt-get update && \
    apt-get install --assume-yes fontconfig && \
    rm -rf /var/lib/apt/lists/* /var/cache/debconf/*

USER 1000:1000 # back to cnb user
Run Code Online (Sandbox Code Playgroud)