Docker 容器添加中文字体

系统里有一个需要在图片上画中文的功能,在测试环境是 ok 的,一到线上 Docker 容器环境中文就不显示了,查了一些资料说是缺少中文字体,那我们就来安装中文字体吧。

1. 查看当前使用的系统语言:

$ echo $LANG
en_US.UTF-8

en_US.UTF-8 是支持中文编码的,所以并不需要去安装中文编码的支持

2. 查看已经安装的中文字体

$ fc-list :lang=zh 

如果这一步提示命令不存在,说明没有安装字体软件,执行下面的命令进行安装:

 yum -y install fontconfig

3. 安装字体

Linux 字体目录是:/usr/share/fonts
只要将字体文件放入这个目录就可以了,
Mac 上通过「字体册」就可以找到具体的字体:
在这里插入图片描述
在 Dockerfile 中加入:

yum -y install fontconfig
COPY Songti.ttc /usr/share/fonts/
RUN fc-cache -vf

fontconfig 是字体软件,然后重新构建镜像并部署新的镜像,进入容器里执行:

fc-list :lang=zh

这个时候就可以看到已经安装好的中文字体了,然后我再看那个「图片上画中文」的功能也 ok 了。当时这个问题困扰了我两天,其实还是对 Linux 和 Docker 容器不太熟悉吧,感叹书到用时方恨少。

参考:
给Docker镜像(Debian)添加中文支持和中文字体
Linux设置显示中文和字体
docker容器安装宋体

posted @   潇湘客2  阅读(7021)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示