如何解決Docker鏡像缺少字體的問題
Docker鏡像缺少字體問題
問題描述
最近在使用spire.office.free這個工具將Excel轉(zhuǎn)換成Html時,后臺總是報
Cannot found font installed on the system.宋體
這個錯誤。
本地調(diào)試的好好的,因為服務器是docker運行的,所以就懷疑到了docker上面,是不是docker里面缺少了字體。

試了直接在服務器運行jar包是正常的,所以問題出現(xiàn)在docker上;
鏡像里使用的是openjdk:8-jdk-alpine作為基鏡像,于是我改成了openjdk:8-jdk試試結(jié)果成功了。
于是查了下,如何處理-alpine鏡像的字體缺失的問題,經(jīng)過實踐,發(fā)現(xiàn)以下可行的方案:
解決方案
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拷貝來的宋體字體文件,網(wǎng)上還有一種添加開源字體的,我沒有嘗試成功。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker部署springBoot項目實操(docker是什么)
Docker可以讓開發(fā)者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化,這篇文章主要介紹了docker部署springBoot項目實操,需要的朋友可以參考下2025-03-03
使用Docker安裝和配置 MySQL 數(shù)據(jù)庫的過程詳解
本文將介紹如何使用Docker來安裝和配置MySQL數(shù)據(jù)庫,以便在開發(fā)和測試環(huán)境中快速搭建MySQL實例,本文也是介紹兩種方式進行分別是“使用鏡像安裝”、“使用Docker Compose安裝”,感興趣的朋友一起看看吧2023-12-12
Docker搭建持續(xù)集成平臺Jenkins的最簡教程分享
Jenkins 是一個廣泛使用的開源持續(xù)集成工具,它能夠自動化構(gòu)建、測試和部署軟件項目,本文我們將使用 Docker 搭建一個基于 Jenkins 的持續(xù)集成平臺,感興趣的可以了解下2024-03-03

