系统里有一个需要在图片上画中文的功能,在测试环境是 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 中加入:
COPY Songti.ttc /usr/share/fonts/
RUN fc-cache -vf
然后重新构建镜像并部署新的镜像,进入容器里执行:
fc-list :lang=zh
这个时候就可以看到已经安装好的中文字体了,然后我再看那个「图片上画中文」的功能也 ok 了。当时这个问题困扰了我两天,其实还是对 Linux 和 Docker 容器不太熟悉吧,感叹书到用时方恨少。