赞
踩
报错提示:
UnsatisfiedLinkError: /usr/local/openjdk-8/lib/amd64/libfontmanager.so: libfreetype.so.6
或者
NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
背景:
springboot项目新增easy excel依赖,根据数据库内容生成excel并输出到response下载。在本地环境测试能正常下载,部署到开发环境服务器后就报错了。部署k8s集群时,按公司要求使用极简的jre镜像如下:
原因分析:
使用的基础镜像不包含字体文件。
解决方案:
修改Dockerfile,安装字体;或使用包含字体的基础镜像(不符合本公司要求故未采用)
Dockerfile片段:
(我们用的是Debian Linux,如果用的RedHat系列请使用yum下载字体库)
文本:
- FROM v1/openjdk:8u275-jre-skywalking2 as api
- RUN sed -i 's#http://deb.debian.org#https://mirrors.ustc.edu.cn#g' /etc/apt/sources.list
- RUN sed -i 's|security.debian.org/debian-security|mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
- RUN apt-get update \
- && apt-get install -y procps wget net-tools telnet curl inetutils-ping vim fontconfig xfonts-utils \
- &&cd /usr/share/fonts/ \
- &&mkfontscale \
- &&mkfontdir \
- &&fc-cache
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。