docker容器部署jar应用导入文件时候报缺少字体错误解决

如题,在导入文件时候报错如下:

java 复制代码
Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager

经查是缺少对应字体,解决办法有两张:

第一种:重新在初始镜像里面安装对应字体,以后每次使用就行,具体方法可参考第二种方法

第二种:如果不想在初始镜像里面安装字体再重新生成镜像可使用如下方法:

上传字体文件到服务器:我这里使用的字体文件是 fontconfig-packages.tar.gz 这个安装包

在dockerfile里面配置,在容器启动时候 复制字体进容器,并安装对应字体

添加内容如下:

java 复制代码
# libfreetype.so.6  是宿主机上面的文件 ,可在/usr/lib64/ 目录下面寻找
COPY fontconfig-packages/libfreetype.so.6 /usr/lib64/libfreetype.so.6
# libpng15.so.15   是宿主机上面的文件, 可在/usr/lib64/ 目录下面寻找
COPY fontconfig-packages/libpng15.so.15 /usr/lib64/libpng15.so.15
#复制刚刚上传的文件到容器/app/目录下面
COPY fontconfig-packages /app/

#执行安装字体需要文件
RUN  rpm -ivh --nodeps *.rpm

安装完成后,可使用 ldconfig -p | grep freetype 命令,查看是否安装成功,成功后结果如下图所示

最下面是字体安装包下载链接:

docker应用缺少字体文件资源-CSDN文库

相关推荐
sbjdhjd16 小时前
云安全 | Docker 容器逃逸复盘(二):2375 未授权接口如何突破容器管理边界
网络安全·docker·云原生·数据挖掘·开源·云计算·云安全
吴声子夜歌18 小时前
Docker入门与实战——初识Docker与容器
docker·容器
JavaPub-rodert18 小时前
公共 Docker 镜像源总失效?用 Harbor Proxy Cache 自建 Docker Hub 镜像缓存
java·缓存·docker
YZ12255220 小时前
【Docker专题】使用Docker部署Vue-Flask项目前后端分离版【前端Docker部署】
前端·vue.js·docker
MrSYJ20 小时前
Docker端口映射咋做的,模拟下。
docker·云原生·kubernetes
张小凡vip20 小时前
Kubernetes--k8s---了解和使用configmap挂载配置文件
云原生·容器·kubernetes
bluebonnet2721 小时前
【docker】容器内映射外部音频驱动
docker·容器·音视频
吴声子夜歌1 天前
Docker入门与实战——核心概念与安装配置
运维·docker·容器
guo_wen_qiang1 天前
docker的备份与迁移
运维·docker·容器
小小龙学IT2 天前
Kubernetes 深度实践:架构、API 与避坑指南
容器·架构·kubernetes