java使用awt包在生产环境docker部署时出现中文乱码的处理

摘要:
一项业务是在后台生成图像并将中文字体添加到容器中,但在这种情况下,必须单独维护中文字体图像。稍后,它将直接在代码中处理。字体文件将放置在资源下,代码将直接从此文件生成字体。百度表示,这是因为Dockerfile在制作图像时使用了开放的jdk,并且没有字体功能。因此,Docker容器仍然需要安装字体服务。添加在Dockerfile中安装字体的语句。

描述:

  有一个业务是需要后台生成图片,后台使用了Graphics2D类。在docker部署时,图片上的中文变成方块。

解决方案:

  百度了一下,发现是生产上的docker容器下没有中文字体,需要在容器里面添加中文字体,但是这样的话要单独维护一个中文字体的镜像。后来直接在代码里面处理,字体文件放在resouces下面,代码直接根据这个文件生成字体。

java使用awt包在生产环境docker部署时出现中文乱码的处理第1张

 java使用awt包在生产环境docker部署时出现中文乱码的处理第2张

java使用awt包在生产环境docker部署时出现中文乱码的处理第3张

  发现这样处理还是有问题,又度娘了一下,百度说是因为制作镜像的时候Dockerfile使用的是open-jdk,里面没有字体的功能。结果docker容器还是要安装字体服务,在Dockerfile加入安装字体的语句,生成镜像后用新镜像启动容器

java使用awt包在生产环境docker部署时出现中文乱码的处理第4张

 用的是oracle-jdk应该是没有问题的,使用open-jdk,需要在Dockerfile添加 RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* 生成镜像即可

免责声明:文章转载自《java使用awt包在生产环境docker部署时出现中文乱码的处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux下使Shell 命令脱离终端在后台运行[原创]HierarchyView的实现原理和Android设备无法使用HierarchyView的解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JAVA RSA私钥 加密(签名) 对应 C# RSA私钥 加密(签名)

非对称密钥RSA算法加解密在C#和Java之间交互的问题,这两天看了很多其他人写的文章,碰到了几个问题,最终解决问题。 参考地址:http://xw-z1985.iteye.com/blog/1837376 需求目的:完成c#请求端RSA加密(签名)问题,客户端采用C#开发,服务器端采用Java开发。服务器端给客户端提供私钥,进行数据加密(签名),客户端加...

项目管理系统 TAIGA 部署

题记 使用了 MantisBT 一段时间,觉得功能太少,只局限在错误跟踪,而且操作体验比较差,界面很糟糕,很早就想将其换掉。 偶然发现一个很不错的新选择:Taiga,于是就试着将其部署下来,发现绝对是一个好东西,对于实践 Scrum 项目管理方法的,更是不可多得的利器! 产品官网:https://taiga.io/ GITHUB:https://githu...

使用派生镜像(qcow2)

当创建的虚拟机越来越多,并且你发现好多虚拟机都是同一个操作系统,它们的区别就是安装的软件不大一样,那么你肯定会希望把他们公共的部分提取出来,只保存那些与公共部分不同的东西,这样镜像大小下去了,空间变多了,管理也方便了。派生镜像就是用来干这事的! 首先看一个原始镜像 hzgatt@hzgatt:~/images$ qemu-img info vm3_base...

Docker部署RocketMQ踩坑记录

搜索镜像 可以选择在官方网站 hub.docker.com 上搜索镜像; 或者在命令行界面中执行命令 docker search rocketmq 搜索镜像; 以下表格是排名靠前的镜像对比: 镜像名称 下载量Downloads 收藏数Stars 最后维护时间 说明文档 foxiswho/rocketmq 500K+ 54 7个月前 有文档...

ios图片添加文字或者水印

  在项目中,我们会对图片做一些处理,但是我们要记住,一般在客户端做图片处理的数量不宜太多,因为受设备性能的限制,如果批量的处理图片,将会带来交互体验性上的一些问题。首先让我们来看看在图片上添加文字的方法、    -(UIImage *)addText:(UIImage *)img text:(NSString *)text1{ //上下文的大小 int...

最新版本容器编排工具rancher-v2.3.3的HA高可用部署

一、准备工作 1.1 操作系统版本 CentOS Linux release 7.6.1810 (Core) 1.2 节点信息 节点名称 ip 安装组件 node1 192.168.1.156 etcd, docker, k8s node2 192.168.1.167 etcd, docker, k8s node3 192.168.1.1...