首页 > 其他分享 >docker-compose: 在容器中添加中文字体

docker-compose: 在容器中添加中文字体

时间:2023-09-19 14:25:03浏览次数:44  
标签:compose fonts 中文字体 字体 pdf docker

docker-compose 配置

先上 docker-compose.yml 的内容

 

version: '2'

services:
mandarin:
container_name: mandarin
restart: always
image: liumapp/add-mandarin-fonts-in-docker:v1.0.0
build:
context: .
args:
- LANG=C.UTF-8
ports:
- 8080:8080
volumes:
- ./fonts:/usr/share/fonts
- ./pdf:/pdf
- ./doc:/doc

build

 
build:  context: .  args:  - LANG=C.UTF-8 

设置容器内编码为 UTF-8,使之支持中文字体。

volumes

 
volumes:  - ./fonts:/usr/share/fonts  - ./pdf:/pdf  - ./doc:/doc 

将宿主机,或者说项目下的 fonts 目录下的中文字体全部与容器内的/usr/share/fonts 建立关联,使绝大多数的中文字体都能够被找到。

另外补充一下,案例项目下的 fonts 目录有大约 300 多 M,下面的字体文件是来自于 windows7 下字体库的所有.ttf 和.ttc 结尾的字体文件,这样做的理由,是因为仅仅让 Docker 支持中文字体是远远不够的,我们很多的需求,比如文档转换、图片转换都是需要用到很多不同的字体,所以方便起见,直接拷贝 windows7 下所有的相关字体是最直截了当的方式。

fontconfig

可能有人会注意到,一般在 Linux 下面配置中文字体都是需要用到 fontconfig 这样的工具,然而,在以 Java:8 为 baseImage 的项目下,fontconfig 是自动配置好了的,所以我们不需要额外关心这个家伙。

不过 Java:8 以外的我就没有去尝试了,估计就要多做几步了吧 ~

1)可以进入到容器查看当前字体是什么。
命令:locale -a

(2)查看已经安装的中文字体
命令:fc-list :lang=zh

(3)手动重载系统字体
命令:fc-cache -fv

标签:compose,fonts,中文字体,字体,pdf,docker
From: https://www.cnblogs.com/wjsqqj/p/17714498.html

相关文章

  • Dockerfile文件编写 解决ppt转pdf,中文异常
    FROMjava:[email protected]=Asia/ShanghaiRUNln-sf/usr/share/zoneinfo/$TZ/etc/localtime&&echo$TZ>/etc/timezone#3.将我们准备的fonts字体,拷贝到/usr/share/fonts下面RUNmkdir-p/usr/share/fontsRUNmkdir-p/usr/share/fonts/zhCOPY./......
  • Docker 日志缓存过大清理方案(亲测)
    Docker日志缓存过大清理方案(亲测)docker磁盘不足异常现象记录排查并定位问题解决方案参考地址自研产品推荐下载地址:docker磁盘不足异常现象记录docker-composeINTERNALERROR:cannotcreatetemporarydirectory!排查并定位问题1#查看磁盘占用情况[root@iZ25bmxsqmeZ~]#df......
  • Windows系统安装docker
    1.打开电脑中的Hyper-v服务打开控制面板:如果找不到可以搜索控制面板注意是点程序,而不是卸载程序选择:启用或关闭Windows功能点击Hyper-V进行打开如果没有Hyper-v服务解决办法如下:打开CMD窗口或者PowerShell输入systeminfo命令:在最后可以看到Hyper-V要求,查看四个要......
  • docker新建数据库
    dockerrun-dit-p3316:3306\#端口映射--privileged=true\#赋权,相当于容器有宿主机root权限--namemysql\#容器的名字--restartalways\#容器自启......
  • Android 大厂用 Jetpack Compose 框架用的多吗?
    前言如果一直关注JetpackCompose的发展的话,可以明显感受到2022年和2023年的JetpackCompose使用讨论的声音已经完全不一样了,2022年还多是观望,2023年就有很多团队开始采纳JetpackCompose来进行开发了。不过也有很多同学接触了下JetpackCompose,然后就放弃了。要么使用......
  • 关于`dial unix /var/run/docker.sock: connect: permission denied`的处理方法笔记
    之前遇到的一个问题,使用非root用户时操作docker提示无权限,在查阅了一些文章之后自己又摸索出了一些更方便的方法,顺手记录下来。一、问题发现根据报错信息dialunix/var/run/docker.sock:connect:permissiondenied,可以看出,是因为当前用户对docker使用的unixdomainsocket......
  • Docker常用命令
    1、docker安装docker:yuminstall-ydocker-ce关闭防火墙:systemctlstopfirewalld启动:systemctlstartdocker设置开机启动:systemctlenabledocker重启操作系统后生效停止:systemctlstopdocker重启:systemctlrestartdocker2、镜像查看本地镜像:d......
  • Docker单机部署Minio
    docker安装官网文档:https://www.minio.org.cn/docs/minio/kubernetes/upstream/安装下载镜像:dockerpullminio/minio启动dockerrun-d-p9000:9000-p9090:9090--nameminio-v/opt/minio/data:/data-e"MINIO_ROOT_USER=root"-e"MINIO_ROOT_PASSWORD=12345678&q......
  • 瑞芯微RK3568:Debian系统如何安装Docker
    本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker,该方法适用于RK356X全系产品。HD-RK3568-IOT评估板基于HD-RK3568-CORE工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医......
  • 瑞芯微RK3568:Debian系统如何安装Docker
    本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker,该方法适用于RK356X全系产品。HD-RK3568-IOT评估板基于HD-RK3568-CORE 工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU 的性能。适用于工业自动化控制、人机界面、中小......