Docker 安装easyExcel字体依赖/The workbook already contains a sheet named ‘XXX‘

说明:

Linux CentOS7 使用 Docker部署的;只有生产环境会出现这个问题。

问题现象:

上图片
请添加图片描述
请添加图片描述

问题分析:

首先判断报错肯定是说sheet页名称重复的问题
但是通过观察代码可以肯定绝对不是sheet页重复的问题(就不上代码了哈),那既然不是sheet页重复,又报sheet页重复。那就…上了懵13树了。
经过层层筛选,对每一道工序的严格把关,原材料的慎重选择。最终将问题定位在了Docker没有字体依赖上。

定位过程简述:
生产环境和开发环境的差异,前者是linux使用了docker,后者是windows;在linux上安装jdk,并排查是否支持中文字体后,是则直接启动项目,不是则安装中文字体后启动项目。使用导出,看问题。此时导出正常了。意味着确实是docker没有字体依赖的问题。我们需要解决的就是Docker安装字体依赖的问题了!!!

解决方案:

在此分为离线,在线两种方式;看官自提

1、在线方式

安装jdk基础镜像

docker pull openjdk:8-alpine

编辑dockerfile文件

#指定基础镜像
FROM openjdk:8-alpine
#解决字体问题
RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/*

执行

docker build -t XXX .
XXX为镜像名称

之后将XXX镜像作为java的基础镜像运行项目后,导出正常了!

2、离线方式

找一个可以链接网络的Linux服务器并安装Docker并按照在线方式生成一个XXX镜像
将此镜像打为tar包

docker save -o XXX.tar 镜像名称:镜像版本

将生成的tar包搞到离线得生产环境上并重新加载

docker load -i XXX.tar

这样我们就得到了一个带字体依赖得jdk基础环境,将此镜像作为java运行项目的基础镜像。运行即可~

大功告成!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值