如何解决Docker镜像缺少字体的问题

 更新时间:2025年02月10日 08:59:28   作者:淋雨一直走啊  
在使用Spire.Office.Free将Excel转换为HTML时,遇到字体缺失错误,通过在Dockerfile中添加字体文件,成功解决了问题,建议在遇到类似问题时,可以尝试在Dockerfile中添加缺失的字体文件

Docker镜像缺少字体问题

问题描述

最近在使用spire.office.free这个工具将Excel转换成Html时,后台总是报

Cannot found font installed on the system.宋体

这个错误。

本地调试的好好的,因为服务器是docker运行的,所以就怀疑到了docker上面,是不是docker里面缺少了字体。

试了直接在服务器运行jar包是正常的,所以问题出现在docker上;

镜像里使用的是openjdk:8-jdk-alpine作为基镜像,于是我改成了openjdk:8-jdk试试结果成功了。

于是查了下,如何处理-alpine镜像的字体缺失的问题,经过实践,发现以下可行的方案:

解决方案

FROM openjdk:8-jdk-alpine
COPY test-office-font.jar app.jar
#### 主要是这两句 ####
RUN set -xe && apk --no-cache add fontconfig
COPY simsun.ttc /usr/share/fonts/
######################
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Dockerfile中加入上面中的两句,其中第二句中的simsun.ttc是我在windows中C:\Windows\Fonts拷贝来的宋体字体文件,网上还有一种添加开源字体的,我没有尝试成功。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker 部署 Mysql8.0的方法示例

    Docker 部署 Mysql8.0的方法示例

    这篇文章主要介绍了Docker 部署 Mysql8.0的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • docker安装并运行rabbitmq的实例代码

    docker安装并运行rabbitmq的实例代码

    在本篇文章里小编给大家整理了关于docker安装并运行rabbitmq的实例代码以及相关知识点,需要的朋友们学习下。
    2019-10-10
  • docker部署springBoot项目实操(docker是什么)

    docker部署springBoot项目实操(docker是什么)

    Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,这篇文章主要介绍了docker部署springBoot项目实操,需要的朋友可以参考下
    2025-03-03
  • mysql8.4.0实现主从复制部署

    mysql8.4.0实现主从复制部署

    主从复制是 MySQL 中一种用于实现数据冗余、提高可用性和性能的重要机制,本文主要介绍了mysql8.4.0实现主从复制部署,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • 使用Docker安装和配置 MySQL 数据库的过程详解

    使用Docker安装和配置 MySQL 数据库的过程详解

    本文将介绍如何使用Docker来安装和配置MySQL数据库,以便在开发和测试环境中快速搭建MySQL实例,本文也是介绍两种方式进行分别是“使用镜像安装”、“使用Docker Compose安装”,感兴趣的朋友一起看看吧
    2023-12-12
  • docker部署mysql问题

    docker部署mysql问题

    这篇文章主要介绍了docker部署mysql问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Docker容器Consul部署概述

    Docker容器Consul部署概述

    这篇文章主要介绍了Docker容器Consul部署概述,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • 如何修改docker的port端口映射

    如何修改docker的port端口映射

    通过docker ps -a查看容器ID,停止容器后,编辑/var/lib/docker/containers目录下对应的json文件以修改端口映射,重启docker服务后启动容器
    2024-11-11
  • Docker 容器安装 Dify的两种方法详解

    Docker 容器安装 Dify的两种方法详解

    该文章介绍了如何使用Docker容器在Windows上安装Dify,方法一通过拉取Dify镜像并运行容器,方法二通过克隆Dify源代码并使用DockerCompose启动容器,两种方法各有优缺点,选择哪种方法取决于具体需求,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • Docker搭建持续集成平台Jenkins的最简教程分享

    Docker搭建持续集成平台Jenkins的最简教程分享

    Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目,本文我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台,感兴趣的可以了解下
    2024-03-03

最新评论