据 OpenJDK 开发团队在邮件列表中的记录,有开发者反馈了一个这样的问题:
可以看到,在构建这两个分别为 OpenJDK 8 和 OpenJDK 11 的版本时,均出现了问题。仔细观察内部版本号,这些 JDK 版本显示的发布时间均比实际发布时间要早。
这会导致什么问题呢?任何运行 OpenJDK 8 和 11 官方 Docker 镜像(https://hub.docker.com/_/openjdk)的人都可能以为他们正在运行 8u212 或 11.0.3,但事实上他们运行的可能只是一个临时的正在开发中的版本。可能会有未修复的 bug 和未解决的 CVE 安全漏洞。
对于导致出现这种版本号混乱情况的原因,大部分人认为这和 OpenJDK 团队没什么关系,更多是因为 Docker 团队或维护此 repo 的一方没有正确发布版本而导致的。
也有人认为这似乎与 Debian 有关,因为这些示例都附带了 Debian 版本字符串,并且它们可能是从版本控制存储库中的标记构建的。
但不管如何,最终还是用户吃亏。因为 OpenJDK 容器基于发行版容器,并为不同的发行版(debian,alpine,windows,slim debian,old debian version 等)发布多个版本。然后,用户将其容器置于 OpenJDK 容器之上,并将其包依赖项添加到其 docker 文件中。接着问题来了,语言容器似乎使用了一个“尚未发布”的版本。
讨论到最后,有不少声音认为是 Debian 发行版导致的问题,从而使得将临时版本提供给毫无戒心的最终用户。即便提供的 Docker 版本有问题,双方都应该知晓这一消息,以权衡利弊。
猜你喜欢:暂无回复。