Docker镜像内无法使用中文

156 阅读1分钟

 在开发词云图生成的过程中,词云图要使用中文字体库,打包成镜像部署到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/