OpenJDK excel dans docker ne peut pas exporter java.lang.NullPointerException à sun.awt.FontConfiguration.getVersion
1. Description du contexte :
La version jdk1.8 est utilisée localement et la fonction peut être utilisée normalement. Lors du déploiement dans l'environnement linux (openJDK1.8) via l'image du package docker, l'excel ne peut pas être exporté. Il indique si l'initialisation est vraie et le pointeur null est anormal. L'erreur est la suivante :
2. Raison :
Openjdk simplifie certaines fonctions par rapport à jdk1.8, il est donc plus petit lorsqu'il est fourni avec docker. L'échec de l'initialisation lors de l'exportation d'Excel est dû au fait que le composant fontconfig est simplifié.
3. Solution :
Il peut être résolu en téléchargeant le composant fontconfig lorsque docker empaquete l'image
La première étape : le système Linux Centos télécharge le composant fontconfig
yum install fontconfig
Étape 2 : Ajoutez la commande de téléchargement lors de l'empaquetage de l'image
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
La capture d'écran ci-dessous :
Lors de l'empaquetage de l'image, le journal suivant sera imprimé (le téléchargement peut être lent) :
4. Ensuite, redémarrez docker
docker restart 容器ID或容器名
5. Lors de l'emballage, il a été constaté que le téléchargement était très lent. La solution : passez au miroir Ali.
RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories \
&& apk update \
&& apk upgrade \
&& apk --no-cache add ttf-dejavu fontconfig
La configuration finale est la suivante :