为什么 OpenJDK 发布的新 Java 8 个镜像不再基于 Alpine 而是基于 Debian 10(Buster)?

Why new Java 8 images published by OpenJDK are no longer Alpine based but Debian 10(Buster) based?

我正在浏览 OpenJDK 发布的最新图像:https://hub.docker.com/layers/openjdk/library/openjdk/8u252-jre-slim-buster/images/sha256-01dfdeac537b9d9adcb2399028fba063733a77186c5264e6b059987002c0e48c?context=explore 全部切换

所有新的 Java 8 个图像都使用基于 Debian 的,是否有任何官方声明表明 OpenJDK 从 Alpine 转向 Debian,为什么?

为什么 OpenJDK 发布的新 Java 8 个映像不再基于 Alpine 而是基于 Debian 10(Buster)?

2019 年 5 月,OpenJDK Dockerhub 映像已转为使用经过认证的官方 OpenJDK 二进制文件,而不是发行版 OpenJDK 软件包:
https://github.com/docker-library/openjdk/pull/322

这些二进制文件是 vanilla upstream OpenJDK builds provided by AdoptOpenJDK,由 RedHat 测试和支持。二进制文件是基于 glibc 的,因此虽然它们与 Debian 兼容,但它们与 Alpine Linux 不兼容。

背景:

直到 2019 年 5 月,OpenJDK 同时拥有 Debian 和 Alpine 映像,使用打包的 OpenJDK 版本并通过分发包管理器安装,apt 用于 Debian,apk 用于 Alpine。 Debian 和 Alpine 软件包由社区构建和维护,并且未在商业企业 OpenJDK 构建的范围内得到验证 - 例如,它们通常未获得 JCK 认证。

然后,发生了一个事件,其中 Debian 打包的 OpenJDK 8 预发布版本已进入官方 OpenJDK 8 docker 映像。该问题最初是在此线程中报告的:
https://mail.openjdk.java.net/pipermail/jdk8u-dev/2019-May/009330.html

之后,决定 OpenJDK 图像将只使用官方的、经过 JCK 测试的构建,以拥有一个“真实来源”。这个决定影响了 Debian 和 Alpine 镜像。

Alpine OpenJDK 支持:

OpenJDK 项目还没有对 Alpine Linux 的官方支持。 Alpine Linux 建立在 musl libc, which is a minimal and strict POSIX implementation, and is generally not compatible with the standard glibc. OpenJDK porting for musl libc is under development under OpenJDK's project Portola.

之上

高山Linuxopenjdk8 packages are provided by IcedTea。 IceaTea 项目为 OpenJDK 6、7 和 8 提供构建,并在 OpenJDK 尚未完全开源时启动。这些构建是社区制作的,不是官方的 OpenJDK 构建。此外,Alpine Linux OpenJDK 8 IcedTea 构建是由 Alpine 维护者从源代码构建的。因此,这些构建不能被视为生产就绪、经过认证的 OpenJDK 构建。

远离高山图像对高山 Java 生态系统产生了巨大影响;从那以后,许多项目都将他们的镜像从 Alpine 移走了,这很不幸。您可以找到更多详细信息 here.