为啥没有OpenJDK8的镜像
心中略有不甘,想搞清楚为何没有,来探索一下;
- 打开OpenJDK8的官方GitHub,去看镜像的制作脚本Dockerfile的源码,地址是:https://github.com/docker-library/openjdk/blob/master/8/jdk/Dockerfile ,注意下图的内容:
- 从上图的分析我们了解到OpenJDK8镜像制作过程:先获取当前宿主机的处理器架构,执行命令是 ( d p k g − − p r i n t − a r c h i t e c t u r e ) ,在树莓派上执行此命令试试,如下,可见得到了 (dpkg --print-architecture),在树莓派上执行此命令试试,如下,可见得到了 (dpkg−−print−architecture),在树莓派上执行此命令试试,如下,可见得到了(dpkg --print-architecture):
root@raspbian:~# echo $(dpkg --print-architecture)
arm64
-
看上图红框3中的代码,如果处理器架构是arm64,那么变量upstreamArch就等于aarch64;
-
看上图红框4中的代码,下载OpenJDK包的地址是${JAVA_BASE_URL}KaTeX parse error: Expected group after ‘_’ at position 21: …reamArch}_linux_̲{JAVA_URL_VERSION}.tar.gz,这里面JAVA_BASE_URL、upstreamArch、JAVA_URL_VERSION的值都已经确定了,于是真实的地址就是:
https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_aarch64_linux_8u222b10.tar.gz
-
在浏览器输入上述地址试试,发现浏览器返回的是404错误,也就是说此地址无效;
-
将上述地址中的aarch64替换成x64,看看X86处理机架构下有没有OpenJDK8的下载包,新地址是:https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_x64_linux_8u222b10.tar.gz ,此地址可以顺利下载;
-
来看看OpenJDK官方为JDK8版本提供了哪些下载包,地址是:https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases ,如下图,清一色的x86架构:
结论
OpenJDK官方镜像的制作原理,是依据宿主机CPU架构去官方下载对应的OpenJDK安装包,再做成镜像,目前OpenJKD8的安装包并没有提供ARM版本,因此官方没有提供ARM版本的OpenJDK8的Docker镜像;
技术学习总结
学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。
最后面试分享
大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
中…(img-Ao2vcjfF-1714276961504)]
[外链图片转存中…(img-qCRNvLqd-1714276961504)]