docker 安装 字体文件

先说一下我当前的 场景 及 环境,这样同学们可以先评估本篇文章是否有帮助。

环境:

  • docker
  • php8.1-fpm
  • windows

之所以有 php,是因为这个功能是使用 php 开发的,其他语言的同学,如果也有使用到 字体文件,那么本篇应该也是有参考性的。

因为本篇主要是分享 docker 安装 字体文件

场景:

来了个需求,有一个默认背景图,可以理解为背景图是一个 "相框",相框里面就会放 照片。照片 是用户端进行上传的。 需要开发一个功能:用户上传照片,程序进行合并,将 相框 和 照片 合并在一起,并且在 相框的 下方附上一段文字,例如是姓名,编号等。

因为这个功能,我以前是开发过的,当时并没有使用到 docker,所以我看了一下源码,发现以前使用时,有用到 "字体文件",我看了一下路径是:

复制代码
/usr/share/fonts/msyh.ttc

然后我进入 docker 容器,查看是否存在这个文件,发现 并没有!

所以,我需要下载字体文件

因为是 PHP,使用的 GD 库进行操作,编写文字时,需要使用到 字体文件。

我的本地开发环境,使用的是 windows11,大多数同学应该也是用的是 windows 10 或者 11 甚至有的同学应该还有使用 7。

如果是其他系统,比如 MAC、LINUX 等,可能就不一样,但是解题思路应该还是可以参考的!

在本地 我们打开终端,输入:

复制代码
cd /c/Windows/Fonts/

进入这个目录后,我们查看列表:

复制代码
ls

是真的很多哇。

然后我使用的是 "msyh.ttc"

该文件的类型是:TrueType Collection 字体文件 (.ttc)

该字体是:微软雅黑 常规 简体字

然后我们将该文件拷贝到容器里:

复制代码
docker cp msyh.ttc 容器名:/tmp

上面这条命令,将"容器名"替换成 我们的容器"CONTAINER ID" 或者 容器"NAMES"就可以了

进入容器:

bash 复制代码
winpty docker exec -it 容器名 bash

因为我的是 windows 环境,所以增加了 "winpty" 命令,如果是 linux 的话,则不需要,如果我不加 winpty 则会报错:

the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'

然后我们找到拷贝的目录 "/tmp"

就能看到 拷贝的文件,然后做一个迁移:

首先我们存储的文件路径为:

bash 复制代码
/usr/share/fonts

我当前容器中,是没有 "fonts" 目录的

所以需要创建,先进入到

bash 复制代码
cd /usr/share

然后创建目录:

bash 复制代码
mkdir fonts

再进入:

bash 复制代码
cd fonts

再查看:

bash 复制代码
pwd

若输出:

bash 复制代码
/usr/share/fonts

则代表目录正确!

然后我们将 字体文件 拷贝过来。就可以在当前目录这样:

bash 复制代码
cp /tmp/msyh.ttc msyh.ttc

然后查看列表:

bash 复制代码
ls

如果显示了

bash 复制代码
msyh.ttc

则代表该文件已经拷贝到该目录下!

到此 结束!

相关推荐
MUY09901 小时前
应用控制技术、内容审计技术、AAA服务器技术
运维·服务器
楠奕1 小时前
elasticsearch8.12.0安装分词
运维·jenkins
Sadsvit1 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
java资料站1 小时前
Jenkins
运维·jenkins
苦学编程的谢2 小时前
Linux
linux·运维·服务器
G_H_S_3_2 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本
拾心213 小时前
【运维进阶】Linux 正则表达式
linux·运维·正则表达式
__lll_3 小时前
Docker 从入门到实战:容器、镜像与 Compose 全攻略
前端·docker
xcs194053 小时前
AI 自动化编程 trae 体验 页面添加富编辑器
运维·自动化·编辑器
Gss7773 小时前
源代码编译安装lamp
linux·运维·服务器