镜像概述
概述和主要用途
本镜像为针对s390x架构的"每架构"仓库,提供由Eclipse Temurin构建的OpenJDK二进制文件。它是官方https://hub.docker.com/_/eclipse-temurin%E7%9A%84%E7%89%B9%E5%AE%9A%E6%9E%B6%E6%9E%84%E7%89%88%E6%9C%AC%EF%BC%8C%E7%94%A8%E4%BA%8E%E5%9C%A8s390x%E5%B9%B3%E5%8F%B0%E4%B8%8A%E8%BF%90%E8%A1%8CJava%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E3%80%82
核心功能和特性
- 提供多个Java版本(11、17、21、25)的JDK和JRE环境
- 基于多种基础镜像(Ubuntu Jammy、Ubuntu Noble、UBI10 Minimal、UBI9 Minimal)构建
- 支持添加自定义CA证书到信任存储
- 可通过jlink工具创建自定义JRE运行时
- 符合Java SE TCK测试标准
- 企业级性能和可靠性
支持的架构
amd64
arm32v7
arm64v8
ppc64le
riscv64
s390x (本仓库)
windows-amd64
维护者和支持渠道
- 维护者: https://github.com/adoptium/containers
- 获取帮助: Adoptium Slack; https://github.com/adoptium/adoptium-support/issues/new/choose
支持的标签
Simple Tags
Java 11
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jdk/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jdk/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jdk/ubi/ubi10-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jdk/ubi/ubi9-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jre/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jre/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jre/ubi/ubi10-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/11/jre/ubi/ubi9-minimal/Dockerfile
Java 17
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jdk/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jdk/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jdk/ubi/ubi10-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jdk/ubi/ubi9-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jre/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jre/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jre/ubi/ubi10-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/17/jre/ubi/ubi9-minimal/Dockerfile
Java 21
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jdk/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jdk/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jdk/ubi/ubi10-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jdk/ubi/ubi9-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jre/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jre/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jre/ubi/ubi10-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/fc54f27893bb7c1ffb1d7eb82f2d22d7605e57bc/21/jre/ubi/ubi9-minimal/Dockerfile
Java 25
- https://github.com/adoptium/containers/blob/7dc6a92c80c1f371f3d416e8357efe***a5/25/jdk/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/7fd47fcdc91108218327496869ec8d2f441eebb7/25/jdk/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/7fd47fcdc91108218327496869ec8d2f441eebb7/25/jdk/ubi/ubi10-minimal/Dockerfile
- https://github.com/adoptium/containers/blob/7dc6a92c80c1f371f3d416e8357efe***a5/25/jre/ubuntu/jammy/Dockerfile
- https://github.com/adoptium/containers/blob/7fd47fcdc91108218327496869ec8d2f441eebb7/25/jre/ubuntu/noble/Dockerfile
- https://github.com/adoptium/containers/blob/7fd47fcdc91108218327496869ec8d2f441eebb7/25/jre/ubi/ubi10-minimal/Dockerfile
Shared Tags
Java 11
11.0.28_6-jdk, 11-jdk, 11: 指向 11.0.28_6-jdk-noble
11.0.28_6-jre, 11-jre: 指向 11.0.28_6-jre-noble
Java 17
17.0.16_8-jdk, 17-jdk, 17: 指向 17.0.16_8-jdk-noble
17.0.16_8-jre, 17-jre: 指向 17.0.16_8-jre-noble
Java 21
21.0.8_9-jdk, 21-jdk, 21: 指向 21.0.8_9-jdk-noble
21.0.8_9-jre, 21-jre: 指向 21.0.8_9-jre-noble
Java 25
25_36-jdk, 25-jdk, 25, latest: 指向 25_36-jdk-noble
25_36-jre, 25-jre: 指向 25_36-jre-noble
使用场景和适用范围
Eclipse Temurin Docker镜像适用于以下场景:
- 企业级Java应用部署:为生产环境中的Java应用程序提供稳定、可靠的运行时环境
- 跨平台开发:在s390x架构上开发和测试Java应用程序
- 微服务架构:作为微服务应用的基础镜像,构建轻量级容器
- CI/CD流水线:集成到持续集成和部署流程中,确保构建和运行环境一致性
- 云原生应用:在Kubernetes等容器编排平台上部署Java应用
- 需要定制JRE的场景:通过jlink工具创建最小化的自定义Java运行时
使用方法和配置说明
基本使用方法
使用最新的OpenJDK 21运行预构建的JAR文件:
dockerfile
FROM s390x/eclipse-temurin:21
RUN mkdir /opt/app
COPY japp.jar /opt/app
CMD ["java", "-jar", "/opt/app/japp.jar"]
构建并运行Docker镜像:
console
docker build -t japp .
docker run -it --rm japp
添加自定义CA证书
要将内部CA证书添加到信任存储,需将证书放入/certificates目录并设置USE_SYSTEM_CA_CERTS环境变量:
console
docker run -v $(pwd)/certs:/certificates/ -e USE_SYSTEM_CA_CERTS=1 s390x/eclipse-temurin:21
注意:
- 证书将同时添加到JVM信任存储和系统CA存储
- 如使用非root用户运行容器,系统CA存储无法更新,将为JVM创建单独的信任存储
- 如覆盖默认入口点脚本,需调用
/__cacert_entrypoint.sh启用证书处理
使用不同基础镜像
如需使用未提供的基础镜像,可复制JDK到自定义镜像:
dockerfile
FROM <自定义基础镜像>
ENV JAVA_HOME=/opt/java/openjdk
COPY --from=s390x/eclipse-temurin:21 $JAVA_HOME $JAVA_HOME
ENV PATH="${JAVA_HOME}/bin:${PATH}"
使用jlink创建自定义JRE
在OpenJDK 21+上,可使用jlink生成自定义JRE:
dockerfile
# 多阶段构建示例:使用jlink创建自定义Java运行时
FROM s390x