docker部署微服务不支持中文字体的解决方案(基础镜像为java:8)
- 出现原因
由于项目中有很多微服务,传统的部署方式为先将微服务打成一个个jar包,再传到服务器上,最后使用命令一个一个启动,比较繁琐。因此决定使用idea集成docker插件一键部署jar包,但是在使用过程中发现一个问题:项目中用到了工作流,在查看流程图时图中的中文字体都变成了一个个白框。之前也遇到过这个问题,是因为服务器没有安装中文字体(宋体为例),因此在服务器安装一个宋体字体即可解决。但是现在是用docker部署服务,每个docker都是一个单独的环境,且没有安装宋体,因此问题重现。
- 解决思路
在基础镜像java:8中加入宋体,并打包成新的镜像,然后使用该镜像作为基础镜像。
-
步骤
1、编写Dockerfile文件FROM java:8 WORKDIR /root COPY simsun.ttc /usr/share/fonts/
2、拷贝字体到Dockerfile文件同目录下(此处用到的时simsun.ttc)
3、docker根据dockerfile构建镜像(不要忘了后面的“.”)docker build -f Dockerfile -t java:withfont .
4、使用新构建的镜像作为基础镜像
FROM java:withfont WORKDIR /root ADD /root/pd_ops-1.0-SNAPSHOT.jar /root/ ENTRYPOINT ["java","-Xmx2048m","-Xms2048m","-jar","pd_ops-1.0-SNAPSHOT.jar"]
-
结果:问题成功解决