背景
因项目需要,需要在 Java 的 Docker 镜像中安装其他字体,但是发现镜像中安装字体所需要的三个命令(mkfontscale、mkfontdir、fc-cache)居然都没有。
解决
找到一台可以联网并且安装有 Docker 机器,上传需要安装命令的 Java 镜像,然后通过 Docker 命令启动镜像进入到容器内部开始手动安装命令:
大部分 Java Docker 镜像基础操作系统都是基于 Ubuntu 的,所以本次以 Ubuntu 为例说明:
开始安装(mkfontscale、mkfontdir),在Ubuntu中是需要安装 ttf-mscorefonts-installer 的(如果是CentOS 可直接 yum install mkfontscale ),执行结果如下:
发现安装失败,一般可执行:
## apt-get update ## 更新软件源中所有软件列表
## apt-get upgrade ## 更新软件
之后重试,如果发现依然安装失败:
在Ubuntu操作系统中使用 apt-get install 的时候会发现很多源都找不到,原因是系统初始的资源库找不到指定的包,可参考如下解决办法:
1、执行下面的命令,编辑系统资源库列表: vi /etc/apt/sources.list
2、修改为以下内容(原来的内容可以注释一下):
附:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
之后再次执行update和upgrade操作,然后重新安装三个命令(mkfontscale、mkfontdir、fc-cache),发现都可以安装成功。
安装 fc-cache 命令
## apt-get install fontconfig
之后可以将已经安装上述命令的镜像重新 commit 为一个新的基础镜像,后续如果需要安装其他字体就可以正常操作了。