jdkAlpineDocker镜像字体问题使⽤POI导出excel时,报错:
java.lang.NullPointerException: null
at sun.Version(FontConfiguration.java:1264)
at sun.adFontConfigFile(FontConfiguration.java:219)
at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at sun.ateFontConfiguration(X11FontManager.java:774)
at sun.font.SunFontManager$2.run(SunFontManager.java:431)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.<init>(SunFontManager.java:376)
at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
wInstance0(Native Method)
wInstance(NativeConstructorAccessorImpl.java:62)
wInstance(DelegatingConstructorAccessorImpl.java:45)
at wInstance(Constructor.java:423)
at java.wInstance(Class.java:442)
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
at java.security.AccessController.doPrivileged(Native Method)
at sun.Instance(FontManagerFactory.java:74)
at java.Font2D(Font.java:491)
at java.awt.Font.access$000(Font.java:224)
nullpointerexception: nullat java.awt.Font2D(Font.java:228)
到⽹络解决办法是加字体。
vi Dockerfile
FROM openjdk:8-jdk-alpine
RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/*
编译
docker build -huaweicloud/d0*******/openjdk:8-jdk-font .
⼯程的Dockerfile使⽤这个
huaweicloud/d0*******/openjdk:8-jdk-font
VOLUME /tmp
ARG JAR_FILE
ADD target/cloudeasy-monitor-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8210
ENTRYPOINT ["java","-d=file:/dev/./urandom","-jar","/app.jar"]
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone