问题复现:转出pdf 文件 几乎都是"口"

在这里插入图片描述
经过排查分析:在 windows 操作系统转换pdf 是没问题的,但是通过 docker(容器)部署到
linux 就出现了这个问题。

原因:linux 没有相关字体文件造成的转换乱码

解决方案1:
起初想到的是 通过docker 文件挂载的方式 把docker 容器字体文件夹 /usr/share/fonts 挂载到宿主机的字体文件夹,这种方式测试环境用着也还可以,毕竟测试环境基本是单节点,但是生产k8s环境想想就特别麻烦,这个方案就不用了
解决方案2:
在dockerfile 文件里来处理,通过dockerfile 做一个包含需要字体的基础镜像

FROM openjdk:8-jre-alpine
VOLUME /tmp
ADD ./agent/ /agent/
ENV LANG en_US.UTF-8
COPY ./simsun.ttf /usr/share/fonts/simsun.ttf 
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig && rm -rf /var/cache/apk/* && fc-cache -vf

COPY ./simsun.ttf /usr/share/fonts/simsun.ttf 把宋体加入到基础镜像
fc-cache -vf 刷新系统字体,使之生效

在这里插入图片描述
构建时特别要注意的是 这个"." ,意思是去当前 dockerfile 所在的目录去build,这样就构建出一个有字体的新的基础镜像

方案2是可行的,最后项目再基于 这个有字体的基础镜像打包部署,乱码完美解决

不知还有没有什么其他好的方法,目前就想到这2种

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐