沉默的背影 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 @ 2020-10-14 08:56  乂墨EMO  阅读(1150)  评论(0编辑  收藏  举报