1.问题描述
我用了flowable,在本地测试没问题,在linux环境也没问题,在docker中启动发现流程图字体显示有问题,显示方框。
2.原因分析
因为flowable返回的直接是图片,直接使用工具类现画的,本地没问题,到了docker有问题,应该是docker中缺少对应的字体导致的。上网一百度,发现flowable使用的是宋体,直接在windows中的C:/windows/Fonts中找到宋体常规简体字(文件名为simsun.ttc),复制到项目根目录下的lib/fonts文件夹中,打包docker镜像的时候把字体加进去就可以了。
3.解决方案
修改dockerfile,添加下面的指令,注意:网上有的让复制到jre包的fonts下,也可以,但是得找到jdk的jre安装路径,这里建议安装到系统的字体中,系统中有了,就都有了。
ADD lib/fonts/simsun.ttc /usr/share/fonts
4.总结
通过这个问题,我们举一反三,当docker中的应用缺少字体时,我们可以把windows中的应用需要的字体复制到docker中,打镜像的时候复制到"/usr/share/fonts"中,即可。