栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么Java 11基础Docker映像如此之大?(openjdk:11

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么Java 11基础Docker映像如此之大?(openjdk:11

为什么

alpine
不再将其用作Java 11超薄映像的基础映像?

不幸的是,这是因为目前没有针对Alpine的官方稳定的OpenJDK 11构建。

与目前大多数Linux使用的标准glibc相比,Alpine使用musl libc,这意味着JVM必须与musl
libc兼容才能支持香草Alpine。在OpenJDK的Portola项目下正在开发Musl
OpenJDK端口。

当前状态汇总在OpenJDK 11页面上:

此页面上先前可用的Alpine Linux构建已从JDK 11
GA中删除。它尚未投入生产,因为它尚未经过充分的测试,无法被视为GA版本。请使用可抢先使用的JDK 12 Alpine Linux构建代替它。

IcedTea项目提供的Alpine唯一稳定的OpenJDK版本是7和8

但是,如果您愿意考虑使用官方OpenJDK之外的其他东西,则Azul的Zulu
OpenJDK提供了一种引人注目的替代方案:

  • 它支持Alpine musl上的Java 11(撰写本文时为11.0.2版);
  • 它是经过认证的OpenJDK构建,已使用OpenJDK TCK合规套件进行了验证;
  • 它是免费的,开放源代码的,并且可用于docker(Dockerhub)。

有关支持可用性和路线图,请参阅Azul支持路线图。

更新,19年3月6日: 截至昨天,

openjdk11
在Alpine存储库中可用!可以使用以下方法在Alpine上进行抓取:

apk --no-cache add openjdk11

该软件包基于

jdk11u
OpenJDK分支以及项目Portola的移植修补程序,并随以下PR引入。非常感谢Alpine团队。

为什么不稳定的 sid 版本用于LTS Java映像?

这是一个公平的问题/要求。实际上有一个开放的票证可以在稳定的Debian发行版上提供Java
11:https:
//github.com/docker-library/openjdk/issues/237

更新,18年12月26日: 问题已解决,现在OpenJDK 11超薄映像基于

stretch-backports
最近可用的OpenJDK
11(PR链接)。

为什么与类似的OpenJDK 8软件包相比,OpenJDK 11的slim / headless / JRE软件包这么大?在OpenJDK
11中带来135 MB的这个 模块 文件是什么?

Java
9引入了模块系统,与jar文件相比,这是对包和资源进行分组的一种新的改进方法。Oracle的这篇文章对此功能进行了非常详细的介绍:https :
//www.oracle.com/corporate/features/understanding-
java-9-modules.html

modules
文件捆绑了JRE随附的所有模块。完整的模块列表可以用来打印
java --list-modules
modules
确实是一个非常大的文件,并且正如所注释的那样,它包含所有标准模块,因此非常膨胀。

但是要注意的一件事是,它被替换

rt.jar
并且
tools.jar
已弃用,因此,与
modules
OpenJDK
9之前的版本进行比较时,考虑到的大小,应减去
rt.jar
和的大小
tools.jar
(它们应占用80MB的总和) 。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380822.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号