我的理解是,您需要有一个分销商才能使用openjdk之类的人(oracle openjdk,采纳openjdk),但是在docker repo for openjdk上,如果我只是使用他们的参考文档,我如何找出谁是分销商
{下面的代码是从openjdk官方docker repo复制的}
FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]
从Java 8移至Java 11
最佳答案
全部都写在docker页面上了:https://hub.docker.com/_/openjdk/
TL; DR:镜像由Docker社区维护,版本小于12的版本从Debian或Alpine Linux发行OpenJDK构建,而更高版本的Oracle发行。
顺便说一句,在版本8之前,Oracle JDK更加免费。无论如何,Linux发行版都构建了自己的二进制文件。只有AdoptOpenJDK,Amazon Corretto等提供的二进制发行版,因为Oracle不再免费提供二进制构建。但是,您可以根据需要下载OpenJDK并自行构建。
编辑:您还可以将其缩进图像中并运行java -version
Edit2: Java 7并支持
我想谈谈您对我的回答的评论。您专门要求Java版本 7 。这个版本很旧(2011年首次发布!),如果不支付商业支持,您将找不到任何长期支持。期。
此版本还早于对Oracle二进制文件的许可证更改,因此整个AdoptOpenJDK参数都无关紧要。
在OpenJDK Docker Hub页面上,您可以看到发布Java 7构建的不同图像,其中一些使用Alpine Linux,另一些使用Debian Jessie。这些(大概只是为Debian验证了)是该发行版的开源OpenJDK项目的构建。因此,具有类路径异常(exception)的GPL应该是适用的许可证(阅读:您可以将其商业使用)。
请注意,甚至对Debian Jessie的LTS支持也会在下个月结束:https://wiki.debian.org/LTS
取决于您要在何处运行该镜像(即面对公共(public)Internet与私有(private)Intranet),这不一定是问题。
如果您必须坚持使用Java的旧版本,则几乎没有选择(也许可以使用现代的Linux镜像并自己构建OpenJDK [我想这会很痛苦])。
Edit3:来自AdoptOpenJdk的最新版本7支持和v8 +
好的,因此您在评论中澄清说,您实际上并不是在寻找版本7的内部版本。
但是,我确实找到了Azul提供的Java 7的最新版本和受支持的版本:https://hub.docker.com/r/azul/zulu-openjdk
但是您说过您正在运行版本8,打算升级到11。然后,我强烈建议您采用AdoptOpenJDK,它是当前最受欢迎的版本。它们提供Docker images as well(注意:它们提供了不同的JVM:默认是Hotspot,强烈建议使用,OpenJ9基于IBM的开发)
关于java - 谁是openjdk docker镜像的发行商,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62407600/