docker 安装 字体文件

news2024/9/21 4:33:49

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

环境:

  • 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"就可以了

进入容器:

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"

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

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

/usr/share/fonts

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

所以需要创建,先进入到

cd /usr/share

然后创建目录:

mkdir fonts

再进入:

cd fonts

再查看:

pwd

若输出:

/usr/share/fonts

则代表目录正确!

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

cp /tmp/msyh.ttc msyh.ttc

然后查看列表:

ls

如果显示了

msyh.ttc

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

到此 结束!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MQ面试题3

1、讲一讲Kafka与RocketMQ中存储设计的异同? Kafka 中文件的布局是以 Topic/partition ,每一个分区一个物理文件夹,在分区文件级别实现文件顺序写,如果一个Kafka集群中拥有成百上千个主题,每一个主题拥有上百个分区&am…

阿里13年员工自爆薪酬并坦言:虽然失业但还是赢麻了...

每月发薪资的那一天,是打工人最开心和盼望的日子,看到工资条,就会觉得之前辛苦的付出没有白费。 但是你期待过未来薪资上限是多少吗?你打算如何过这一生呢? 最近看到一个很吸引我的帖子:一85年阿里员工薪…

记录一次很傻逼的bug,希望大家引以为戒!

最近准备程序上线,测试上数据库连接是正常的,但是到正式上,数据库连接就一直报错,报错如下: 根据报错信息的提示,就是没有识别到url,但是因为正式服务器之前发布过其他的项目,是可以…

棕榈酰三肽-38——对额间纹,鱼尾纹,抬头纹和颈纹非常有效

简介 棕榈酰三肽-38由三个氨基酸组成,是一种双氧化的脂肽。这种肽的灵感源自于天然存在于胶原蛋白VI和层粘连蛋白中的一种三肽。 它可以在需要的地方,从内部重建肌肤,使皱纹平滑皮肤得到舒缓,尤其对额间纹,鱼尾纹&…

AI写作技巧,用ChatGPT写自媒体爆文的小技巧

Hi~我是专注于AI技术教程和项目实战的赤辰。 对于新手来说,要写出一篇引人入胜的自媒体文章并不容易,虽然ChatGPT可以帮我们完成写作过程的各个部分,但是,ChatGPT其实也并不能仅凭一个思路和一个主题就直接生成高质量的内容&…

Java 异常处理以及如何捕获和处理多个异常

捕捉和处理异常 在Java中,我们使用异常处理程序组件try,catch和finally块来处理异常。 为了捕获和处理异常,我们将try...catch...finally代码块放置在可能产生异常的代码周围。finally块是可选的。 try...catch...finally的语法为&#xf…

重学C++系列之STL库

一、什么是STL库 STL是“Standard Template Library”的缩写,中文翻译为“标准模板库”。CSTL是一套功能强大的C模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如字符串操作、链表、队…

mybatisJava对象、list和json转换

1. 参考mybatis-plus mybatis Java对象、list和json转换 网上好多不靠谱,参考mybatis-plus中TableField,mybatis中自定义实现 这样不需要对象中属性字符串接收,保存到表中,都是转义字符,使用时还要手动转换为对象或者…

【UI自动化测试】Jenkins配置

前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家。 背景: 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化测试和性能测试&…

棱镜七彩成为“软件供应链安全推进工作组”首批成员单位

2023年7月29日,由基础软件质量控制与技术评价工业和信息化部重点实验室(以下简称“实验室”)举办的软件供应链安全研讨会暨软件供应链安全推进工作组成立会议在京成功召开。 会上,实验室委托中国软件评测中心(工业和信…

助力质检维护,基于超轻量级分割模型ege-unet开发构建水泥基建裂缝分割识别系统

在前面的博文: 《参数量仅有50KB的超轻量级unet变种网络egeunet【参数和计算量降低494和160倍】医疗图像分割实践》 初步学习和实践了最新的超轻量级的unet变种网络在医疗图像领域内的表现,在上文中我们就说过会后续考虑将该网络模型应用于实际的生产业…

GNN+RA 文献阅读-- GNN对RA的建模

简述:主要是几篇 如何利用GNN 对 资源分配进行建模的paper,【1】【2】都是对无线链路建模,【3】比较有参考性,【4】偏于RL,对GNN表述模糊。 用GNN建模网络的思路: 1.Graph 是有向图还是无向图&#xff1f…

HarmonyOS 开发基础(二)组件拼凑简单登录页面

一、简单登录页面 Entry Component /* 组件可以基于struct实现,组件不能有继承关系,struct可以比class更加快速的创建和销毁。*/ struct Index {State message: string Hello Worldbuild() {// https://developer.harmonyos.com/cn/docs/documentation/…

万应低代码 7 月重点更新内容速递

速览版 详情版 低代码开发能力提升 业务逻辑 业务逻辑是什么? 在万应低代码中,「业务逻辑」指的是应用程序中的核心规则和功能,它决定了数据如何被处理和操作。就像搭积木一样,业务逻辑告诉计算机在特定情况下如何运行和响应。比…

【C语言】操作符----详解

🍁 博客主页:江池俊的博客 💫收录专栏:C语言——探索高效编程的基石 💻 其他专栏:数据结构探索 💡代码仓库:江池俊的代码仓库 🎪 社区:C/C之家社区 🍁 如果觉…

【投资笔记】美股要变天了?

美股上涨,但是风险溢价创新低 7月,标普和纳指创两年依赖首次5个月连涨,但是风险溢价创二十年新低;https://asset.wsj.net/dynamic-insets/charts/cdc_5387e4742a1ca607d6defc38_embed.html 如果这个指标为正,说明投资…

视频媒体有哪些?视频媒体采访服务怎么做?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 一,在国内,主流的视频媒体包括: 1. 电视台:包括国家级、地方性和专业性电视频道,涵盖各类新闻、综艺、娱乐、体育等节目。 2…

链表OJ:环形链表

Lei宝啊:个人主页 愿所有美好与我们不期而遇 题目描述 : 给你一个链表的头节点 head ,判断链表中是否有环。 接口: bool hasCycle(struct ListNode *head) 示例1: 示例2: 返回值: true或…

电力系统基础知识(东方电子)持续更新

文章目录 三相电、相电压、线电压断路器和继电器电压互感器、电流互感器GOOSE、SV 三相电、相电压、线电压 因为交流电可以通过变压器升降,很容易实现远距离输电,而直流电无法升降,远距离输电会造成巨大浪费。 三相电:三相交流电…

go程序使用tcp短连接报:only one usage of each socket address

环境及现象 Win10上位机(C#,WPF)后台使用go作为服务。 连接情况 C#连接大概60个TCP长连接(设备)。 后台go服务连接60个UDP短连接(设备附属硬件), 10个TCP短连接(PLC,modbus通讯&a…