Docker制作含字体库的OpenJdk镜像

最近项目上测试环境,测试测一个导出模板的功能时,发现模板导出出来,于是我在本地试了一下,结果正常导出,同一份代码部署到测试怎么就不一样了呢,无奈只能查看服务器日志,发下如下错误:

java.lang.IllegalArgumentException: The workbook already contains a sheet named

结果百度了一下午,没有解决方案,偶然看到一个资源下载,说是Docker缺少字体库原因,我突然想到之前处理过一个问题,也是Docker部署项目,然后图形验证码不显示问题。
在这里插入图片描述
之前的解决方案是吧 Dockerfile中的From及基础镜像从 openjdk修改为Oracle Jdk。因为openjdk是不包含字体库的。
在这里插入图片描述
现在提供下第二种方案:制作一个含字体库的openjdk镜像

调整Dockerfile文件如下:

FROM openjdk:8-jdk-alpine
RUN echo "http://mirrors.aliyun.com/alpine/v3.6/main" > /etc/apk/repositories \
    && echo "http://mirrors.aliyun.com/alpine/v3.6/community" >> /etc/apk/repositories \
    && apk update upgrade \
    && apk add --no-cache procps unzip curl bash tzdata \
    && apk add ttf-dejavu \
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

打包镜像:

docker build -t my-openjdk8 .

如果你使用了镜像库,将打包的镜像推送上去即可

docker login --username=admin --password=Harbor12345 ip
docker push ip/library/my-openjdk8

猜你喜欢

转载自blog.csdn.net/HXNLYW/article/details/108143636