解决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/字体

相关文章
相关标签/搜索