問題:
最近因公司業務由傳統虛擬機方式遷移至容器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還是挺慢的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/233755.html
標籤:其他
上一篇:懶惰使人進步,UNIX 和 Linux 新系統的誕生只是意外
下一篇:如何做一個自動化感應垃圾桶
