解決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)

解決方法:
出處: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還是挺慢的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM