bellsoft/liberica-openjdk-alpinebellsoft/liberica-openjdk-alpine 是基于 Alpine Linux 构建的 Liberica JDK Docker 镜像,采用 glibc 库而非 Alpine 默认的 musl。Liberica JDK 是由 BellSoft 开发的免费开源 Java 运行时,100% 兼容 Java SE 规范,通过 TCK 验证,适用于桌面、服务器、云环境及嵌入式场景。
本镜像结合了 Alpine Linux 的轻量级特性(基础镜像约 5MB)与 Liberica JDK 的兼容性,旨在提供最小化、高性能的 Java 容器环境,特别适合微服务部署和云原生应用。
-cds 标签的镜像预构建类数据共享(Class Data Sharing)归档,加速 JVM 启动。X-Y 或 X-cds-Y,其中 X 为 Java 版本,Y 为架构类型(如 aarch64)。若未指定架构,默认支持 amd64 和 ARM64。latest 指向最新版本;含 -cds 标签的镜像包含 CDS 归档。按 Java 版本分组:
latest-cds, latest, 25-cds, 2524-cds, 2423-cds, 2322, 22-cds21.0.8-cds, 21.0.8, 21.0.7-cds, 21.0.7, 21.0.6-cds, 21.0.6, 21.0.5-cds, 21.0.5, 21.0.4-cds, 21.0.4, 21.0.3-cds, 21.0.3, 21, 21-cds20191817.0.16-cds, 17.0.16, 17.0.15-cds, 17.0.15, 17.0.14-cds, 17.0.14, 17.0.13-cds, 17.0.13, 17.0.12, 17.0.12-cds, 17.0.11, 17.0.11-cds, 17, 17-cds16, 15, 14, 131211.0.28-cds, 11.0.28, 11.0.27-cds, 11.0.27, 11.0.26-cds, 11.0.26, 11.0.25-cds, 11.0.25, 11.0.24, 11.0.24-cds, 11.0.23, 11.0.23-cds, 11, 11-cds10.0.2, 10.0.1, 10(仅 armhf 架构)9.0.4, 9.0.1(仅 armhf 架构)8u462, 8u462-cds, 8u432, 8u432-cds, 8u422, 8u422-cds, 8u412, 8u412-cds, 8u392, 8u392-cds, 8u, 8u-cds, 8, 8-cds(仅 amd64 和 aarch64 架构)Dockerfile 支持以下构建参数,用于自定义镜像内容:
| 参数名 | 说明 | 默认值 |
|---|---|---|
LANG | 指定镜像的 locale(语言环境),取值参考 Locale 名称 | en_US.UTF-8 |
OPT_PKGS | 需安装的可选 Alpine 包,空格分隔(如 curl ttf-dejavu) | 空(不安装额外包) |
| 参数名 | 说明 | 默认值 |
|---|---|---|
LIBERICA_USE_LITE | 是否构建 Lite 版本(移除演示、示例和源码):0(保留完整 JDK),1(Lite 版本) | 1 |
| 参数名 | 说明 | 默认值 |
|---|---|---|
LIBERICA_IMAGE_VARIANT | 镜像变体:base(仅含 java.base 模块的 server VM)、base-minimal(java.base 模块的 minimal VM)、lite(精简 JDK)、standard(标准 JDK) | lite |
LIBERICA_VM | 包含的 VM 类型(仅对 lite 和 standard 变体生效):server、client、minimal、all(所有 VM) | server |
运行容器并验证 Java 版本:
bashdocker run -it --rm bellsoft/liberica-openjdk-alpine:latest java -version
bashdocker run -it --rm -v /path/to/your/app:/app bellsoft/liberica-openjdk-alpine:21 java -jar /app/MyApp.jar
创建 Dockerfile:
dockerfileFROM bellsoft/liberica-openjdk-alpine:21 WORKDIR /app COPY target/MyApp.jar /app/ CMD ["java", "-jar", "MyApp.jar"]
构建并运行:
bashdocker build -t my-java-app . docker run -it --rm my-java-app
创建 docker-compose.yml:
yamlversion: '3.8' services: app: image: bellsoft/liberica-openjdk-alpine:21 volumes: - ./target/MyApp.jar:/app/MyApp.jar command: java -jar /app/MyApp.jar ports: - "8080:8080"
启动服务:
bashdocker-compose up
容器化部署中,若需进行离屏渲染(如生成文档、图片),JDK 需依赖系统字体和 fontconfig 库。缺少这些组件会导致类似以下异常:
Exception in thread "main" java.lang.InternalError: java.lang.reflect.InvocationTargetException ... Caused by: java.lang.NullPointerException at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
安装 fontconfig 和字体包(如 ttf-dejavu):
bashdocker run -it --rm bellsoft/liberica-openjdk-alpine:latest sh -c "apk add fontconfig ttf-dejavu && java -jar /app/MyApp.jar"
通过 OPT_PKGS 参数在构建镜像时预装依赖:
bashdocker build -t my-app-with-fonts \ --build-arg OPT_PKGS="fontconfig ttf-dejavu" \ --build-arg LIBERICA_VERSION=21.0.8 \ .
Alpaquita Linux 是 BellSoft 推出的轻量级 Linux 发行版,作为 Alpine 的增强替代方案,提供:
Alpaquita 与 Liberica JDK 的容器化方案可在 bellsoft/liberica-runtime-container 获取。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务