You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用buildpack构建的Spring Boot Docker镜像无法加载字体如何解决

解决方案

方案1:使用Bellsoft Liberica JDK的Full变体

Bellsoft Liberica buildpack支持通过环境变量指定JVM变体,Full版本已经内置了fontconfig以及常用字体库,无需额外安装系统包。你只需要在执行构建命令时传入对应的环境变量即可:

gradlew bootBuildImage --env BP_JVM_VERSION=17 --env BP_LIBERICA_JVM_TYPE=full

调整BP_JVM_VERSION为你实际使用的JDK版本即可生效。

方案2:结合Apt Buildpack安装指定依赖

如果不想使用Full版JVM,可以在构建时引入Apt buildpack,直接指定要安装的系统包:
首先修改build.gradle中的bootBuildImage配置,调整buildpack顺序并传入安装参数:

bootBuildImage {
    buildpacks = [
        "gcr.io/paketo-buildpacks/apt",
        "gcr.io/paketo-buildpacks/bellsoft-liberica",
        "gcr.io/paketo-buildpacks/spring-boot"
    ]
    environment = [
        "BP_APT_PACKAGES" : "fontconfig ttf-dejavu"
    ]
}

配置完成后正常执行gradlew bootBuildImage,构建过程中会自动安装指定的两个依赖包。

方案3:自定义运行时基础镜像

如果上述方案都不符合需求,可以基于Paketo官方基础运行镜像,提前安装好字体相关依赖,再使用自定义镜像作为构建的基础Stack,该方案适合需要批量为多个应用添加相同系统依赖的场景。

内容的提问来源于stack exchange,提问作者Bartosz Bilicki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:36:00