在开发词云图生成的过程中,词云图要使用中文字体库,打包成镜像部署到docker中生成词云图乱码。后来发现镜像不支持中文。
异常信息:
java.lang.NullPointerException
at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
at sun.font.SunFontManager$2.run(SunFontManager.java:431)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.<init>(SunFontManager.java:376)
at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
一、宿主机安装字体库
1、yum -y install fontconfig安装
2、安装好后/usr/share目录下多两个目录fonts和fontconfig
3、首先在/usr/shared/fonts目录下新建一个目录chinese
4、到C:\Windows\Fonts目录下上传你需要的字体到/usr/shared/fonts/chinese目录下
5、修改chinese权限
chmod -R 755 /usr/share/fonts/chinese
二、Dockerfile启动命令中添加字体路径映射
-v /usr/share/fonts/:/usr/share/fonts/