解決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

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM