解決Alpine鏡像缺乏字體的問題

Issue
前言:開發人員在使用監控報表管理系統時,導出Excel時,報空指針異常:
[2020-05-11 14:31:47] ERROR com.ruoyi.common.utils.poi.ExcelUtilcreateSheet - .......建立工做表Exception:{} java.lang.NullPointerException: null
2020-05-11 14:31:47] ERROR com.ruoyi.common.utils.poi.ExcelUtilexportExcel - 導出Excel異常null
[2020-05-11 14:31:47] ERROR com.ruoyi.framework.web.exception.GlobalExceptionHandlerbusinessException - 導出Excel失敗,請聯繫網站管理員! com.ruoyi.common.exception.BusinessException: 導出Excel失敗,請聯繫網站管理員!java

最終發現問題出在 Excel 組件上. Excel 組件試圖根據字體大小自動調整單元格寬度 , 當尋找 fontconfig 時找不到, 返回 null ,是因爲Alpine鏡像缺乏相關依賴包致使。linux

解決辦法
1
在原有的鏡像基礎上,安裝須要的依賴包,生成新的鏡像,供開發人員使用
Dockerfile以下:
FROM 10.0.0.100/dev/openjdk8-monitor:v1 ###原始開發人員使用的鏡像
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' ###替換鏡像源 /etc/apk/repositories
RUN apk add --update tzdata busybox-extras fontconfig ttf-dejavu\
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& rm -fr /var/cache/apk/* ##安裝相關的依賴包web

執行構建:docker build -t 10.0.0.100/dev/openjdk8-monitor:v2 .docker

經過添加 fontconfig 和一款字體 dejavu , 能夠完美解決問題ide

參考連接: https://lhalcyon.com/alpine-font-issue/字體

相關文章
相關標籤/搜索