问题描述
在使用Docker时遇到一个问题,当运行Docker镜像时,会显示以下信息:“No java installations was detected.Please go to http://www.java.com/getjava/ and download”。用户注意到当部署Oracle JDK时,Docker镜像的大小会超过原始镜像的两倍。用户希望能够尽可能地减小Docker镜像的大小,但似乎Oracle JDK的大小比镜像本身还要大。
解决方案
在Docker中没有官方提供的Oracle JDK镜像,这是因为Oracle JDK的许可协议不允许第三方公开分发它。这也是为什么你在公共的Docker注册表或任何Linux软件包仓库中都找不到Oracle JDK/JRE的原因。
然而,你仍然可以自己创建Docker镜像,并使用适合Ubuntu/Debian的webupd8team/java
软件包来安装Oracle JDK或JRE。对于使用Alpine Linux的情况,你可以查看一些资源,了解所需的依赖项,并获取安装指南。
另外,你可以考虑使用OpenJDK作为替代方案,它在Docker中有官方支持,并且有一个官方的OpenJDK Dockerfile仓库,你可以从中选择适合你的版本。以下是使用OpenJDK 7的基本Dockerfile示例:
FROM openjdk:7
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]
需要注意的是,你可以在自己的Dockerfile中进行一些优化,例如删除不必要的文件,减小镜像大小。在Dockerfile中安装Oracle JDK时,最好在同一个RUN
命令中删除下载的.tar.gz
文件,这样可以避免添加不必要的镜像层。
总的来说,虽然没有官方的Oracle JDK Docker镜像,但你可以采取上述措施来减小Docker镜像的大小,并选择合适的JDK版本以满足你的需求。