
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
bellsoft/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 版本分组:
Java 25
latest-cds, latest, 25-cds, 25Java 24
24-cds, 24Java 23
23-cds, 23Java 22
22, 22-cdsJava 21
21.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-cdsJava 20
20Java 19
19Java 18
18Java 17
17.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-cdsJava 16-13
16, 15, 14, 13Java 12
12Java 11
11.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-cdsJava 10
10.0.2, 10.0.1, 10(仅 armhf 架构)Java 9
9.0.4, 9.0.1(仅 armhf 架构)Java 8
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(语言环境),取值参考 https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html | en_US.UTF-8 |
OPT_PKGS | 需安装的可选 Alpine 包,空格分隔(如 curl ttf-dejavu) | 空(不安装额外包) |
JDK 8u* 版本
| 参数名 | 说明 | 默认值 |
|---|---|---|
LIBERICA_USE_LITE | 是否构建 Lite 版本(移除演示、示例和源码):0(保留完整 JDK),1(Lite 版本) | 1 |
JDK 11* 和 17* 版本
| 参数名 | 说明 | 默认值 |
|---|---|---|
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 docker.xuanyuan.run/bellsoft/liberica-openjdk-alpine:latest java -version
方法 1:挂载本地应用目录
bashdocker run -it --rm -v /path/to/your/app:/app docker.xuanyuan.run/bellsoft/liberica-openjdk-alpine:21 java -jar /app/MyApp.jar
方法 2:基于镜像构建应用镜像
创建 Dockerfile:
dockerfileFROM docker.xuanyuan.run/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 docker.xuanyuan.run/my-java-app
创建 docker-compose.yml:
yamlversion: '3.8' services: app: image: docker.xuanyuan.run/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 docker.xuanyuan.run/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 \ .
https://bell-sw.com/alpaquita-linux/ 是 BellSoft 推出的轻量级 Linux 发行版,作为 Alpine 的增强替代方案,提供:
Alpaquita 与 Liberica JDK 的容器化方案可在 https://hub.docker.com/r/bellsoft/liberica-runtime-container 获取。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 bellsoft/liberica-openjdk-alpine 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: