docker jdk:8镜像容器内安装中文字体

264次阅读
一条评论

整体思路

因为我当前容器部署方式为 docker swarm+docker-compose,为将服务发布在各个node节点上,也在网上看了在构建服务镜像时就预装中文字体,但是多次尝试最终以失败告终,于是换用 volumes 挂载宿主机字体目录方式解决,下面介绍具体操作方法:

为docker swarm 集群内各个节点安装中文字体

1. 上传中文字体包

ansible docker-swarm -m copy -a “src=/root/fonts.tar.gz dest=/usr/share”

docker jdk:8镜像容器内安装中文字体
docker jdk:8镜像容器内安装中文字体

2. 安装linux使用字体工具

ansible docker-swarm -m yum -a “name=fontconfig state=present” 
ansible docker-swarm -m yum -a “name=ttmkfdir state=present”

docker jdk:8镜像容器内安装中文字体

3. 解压字体压缩包,配置中文字体生效

ansible docker-swarm -m shell -a “cd /usr/share/ ;tar -zxf fonts.tar.gz;chmod -R 755 /usr/share/fonts/chinese;fc-cache;fc-list | grep chinese” 
ansible docker-swarm -m shell -a “ls /usr/share/fonts/chinese”

docker jdk:8镜像容器内安装中文字体

4. 修改原Dockerfile 及docker-compose文件

具体见:https://teamcity2.aegis-info.com/admin/editBuildParams.html?id=buildType:Intelligentlawmanageservice_Build66 的env.build.docker.deploy部分

在Dockerfile中添加配置

export LANG=C.UTF-8

docker jdk:8镜像容器内安装中文字体

在 docker-compose中添加配置

volumes:   - /usr/share/fonts:/usr/share/fonts  
docker jdk:8镜像容器内安装中文字体

5. teamcity run 该 build

docker jdk:8镜像容器内安装中文字体

6. 在服务器上检查容器字体是否生效

docker service ps law-manage-service_java-app

docker jdk:8镜像容器内安装中文字体

docker ps |grep law 
docker exec -it b21a06209de2 bash 
ls /usr/share/fonts/chinese/ 
locale -a

docker jdk:8镜像容器内安装中文字体

收工!

正文完
 1
weldonwang
版权声明:本站原创文章,由 weldonwang 于2024-09-25发表,共计991字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
wollenshaper
2024-09-26 11:35:56 回复

test1

 Windows  Chrome  中国江苏省南京市电信