docker image使用openjdk无法使用字体控件
问题描述
Java服务使用openjdk:17-jdk-alpine为基础镜像进行构建的存在两个问题:
1.openjdk不包括sum.awt的字体控件
2.alpine linux的基础镜像也未安装有fontconfig和ttf-dejavu字体。
openjdk明确表示只适用于预发布,非生产环境

解决方法
切换其他发行商生产环境镜像,我目前使用的是亚马逊的
FROM amazoncorretto:17.0.15
生产环境镜像推荐
| 发行商 | 介绍 |
|---|---|
| 亚马逊 | Amazon Corretto提供的完全免费、多平台、生产就绪型发行版,提供长期支持,其中包括性能增强和安全修复。它基于openjdk,承诺100%兼容openjdk;在紧密跟进openjdk的同时,AWS&Amazon也会做例行的安全修复和性能增强。是目前最受欢迎的JDK |
| Eclipse Temurin | Eclipse Temurin 是 Eclipse Adoptium 项目的一部分,Eclipse Temurin是 OpenJDK 的免费、开源、生产就绪的实现。Temurin 是 Oracle JDK 的完全兼容的替代品,并提供与 Oracle JDK 相同的功能和性能。 |
| 阿里 | Alibaba Dragonwell 是一款免费的, 生产就绪型Open JDK 发行版,提供长期支持,包括性能增强和安全修复。阿里巴巴拥有最丰富的Java应用场景,覆盖电商,金融,物流等众多领域,世界上最大的Java用户之一。Alibaba Dragonwell作为Java应用的基石,支撑了阿里经济体内所有的Java业务。Dragonwell 在docker hub上的文档和维护好像没有上述的其他家用心,基本没什么文档。 |