docker镜像缺少字体问题
问题描述
最近在使用spire.office.free
这个工具将excel转换成html时,后台总是报
cannot found font installed on the system.宋体
这个错误。
本地调试的好好的,因为服务器是docker运行的,所以就怀疑到了docker上面,是不是docker里面缺少了字体。
试了直接在服务器运行jar包是正常的,所以问题出现在docker上;
镜像里使用的是openjdk:8-jdk-alpine
作为基镜像,于是我改成了openjdk:8-jdk
试试结果成功了。
于是查了下,如何处理-alpine
镜像的字体缺失的问题,经过实践,发现以下可行的方案:
解决方案
from openjdk:8-jdk-alpine copy test-office-font.jar app.jar #### 主要是这两句 #### run set -xe && apk --no-cache add fontconfig copy simsun.ttc /usr/share/fonts/ ###################### expose 8080 entrypoint ["java","-djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
在dockerfile
中加入上面中的两句,其中第二句中的simsun.ttc
是我在windows中c:\windows\fonts
拷贝来的宋体字体文件,网上还有一种添加开源字体的,我没有尝试成功。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论