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

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

到此 结束!

相关推荐
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Patrick_Wilson4 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy5 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
宋均浩6 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
程序员老赵6 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1117 天前
LM Studio Docker 部署——本地大模型一键启动
docker