沉默的背影 X-Pacific

keep learning

解决docker容器内使用java drawString生成水印图片中文方框的问题

1、docker容器内 2、有jdk环境 3、无字体环境

解决方案:自己制作一个镜像,Dockerfile见下

复制代码
FROM registry.cn-hangzhou.aliyuncs.com/ghoulich-centos/centos:7.4.1708
MAINTAINER zxp ***@163.com
COPY agent agent       # 支持skywalking探针
COPY jdk1.8.0_131 jdk1.8.0_131  # 拷贝oracle jdk 需要在jdk1.8.0_131/jred/lib/fonts中创建fallback目录,并添加simsun.ttc
COPY fonts /usr/share/fonts # 拷贝字体 包含simsun.ttc
ENV LANG en_US.UTF-8 
ENV LANGUAGE en_US:en
ENV JAVA_HOME=/jdk1.8.0_131
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
复制代码

 

 

 制作镜像并上传阿里云镜像中心

$ docker build -t jdk8:latest .
$ sudo docker login --username=zxpdt@163.com registry.cn-hangzhou.aliyuncs.com password:密码 $ sudo docker tag [镜像id] registry.cn-hangzhou.aliyuncs.com/zxporz/jdk8:[版本] $ sudo docker push registry.cn-hangzhou.aliyuncs.com/zxporz/jdk8:[版本]

用自己上传的镜像作为base

FROM registry.cn-hangzhou.aliyuncs.com/zxporz/jdk8:latest
ENV  TZ CST-8
COPY *.jar /*.jar
ENV JAVA_TOOL_OPTIONS -Dfile.encoding=UTF8 -Duser.language=zh -Duser.region=zh_CN -Duser.country=zh_CN
ENTRYPOINT exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap  $JAVA_OPTS $SKYWALKING_OPTS  -jar /*.jar

 

 

 

 

posted @   乂墨EMO  阅读(1238)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2019-10-14 elasticsearch(lucene)索引数据过程
点击右上角即可分享
微信分享提示