码迷,mamicode.com
首页 > 其他好文 > 详细

解决Alpine镜像缺少字体的问题

时间:2020-05-17 00:48:49      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:sheet   cep   jdk8   pointer   null   使用   issue   tor   返回   

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失败,请联系网站管理员!

最终发现问题出在 Excel 组件上. Excel 组件试图根据字体大小自动调整单元格宽度 , 当寻找 fontconfig 时找不到, 返回 null ,是由于Alpine镜像缺少相关依赖包导致。

解决办法
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/* ##安装相关的依赖包

执行构建:docker build -t 10.0.0.100/dev/openjdk8-monitor:v2 .

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

参考链接: https://lhalcyon.com/alpine-font-issue/

解决Alpine镜像缺少字体的问题

标签:sheet   cep   jdk8   pointer   null   使用   issue   tor   返回   

原文地址:https://blog.51cto.com/guokang/2495820

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!