欢迎光临
我的个人博客网站

解决docker中Easyexcel因缺少字体无法导出的问题

问题:
        最近因公司业务由传统虚拟机方式迁移至容器docker方式部署后,最近发现某处导出excel报表后无内容(0字节)

报错:
Error: java.lang.reflect.InvocationTargetException com.alibaba.excel.exception.ExcelGenerateException: java.lang.InternalError: java.lang.reflect.InvocationTargetException

java.lang.NullPointerException: null at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)

解决docker中Easyexcel因缺少字体无法导出的问题

解决方法:
出处:https://www.cnblogs.com/liucx/

经过百度,谷歌查找资料,是由于docker基础镜像使用的是Alpine环境,缺少对应的字体包.

在 Dockerfile 中进行修改,增加如下内容:
ENV LANG en_US.UTF-8
RUN apk add –update ttf-dejavu fontconfig && rm -rf /var/cache/apk/*

通过添加fontconfig和一款字体dejavu,可以完美解决词问题。

不过最好的方法还是封装一个镜像,替换掉官方的底包。流水线上每次打包都安装ttf-dejavu还是挺慢的。

赞(0) 打赏
未经允许不得转载:张拓的天空 » 解决docker中Easyexcel因缺少字体无法导出的问题
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏