Docker无法findJVM

我正在尝试构build的容器需要安装在/usr/lib/jvm/java-8-openjdk-amd64的JVM。 我已经添加了该行

 RUN ./installer.sh --javahome /usr/lib/jvm/java-8-openjdk-amd64 

到我的Dockerfile 。 不过,我仍然收到错误消息:

 Searching for JVM on the system... Java Runtime Environment (JRE) was not found at the specified location /usr/lib/jvm/java-8-openjdk-amd64 The command '/bin/sh -c ./installer.sh --javahome /usr/lib/jvm/java-8-openjdk-amd64' returned a non-zero code: 4 

更新

这是整个Docker文件

 FROM scratch MAINTAINER Oracle Linux Product Team <ol-ovm-info_ww@oracle.com> ADD oraclelinux-7.3-rootfs.tar.xz / # overwrite this with 'CMD []' in a dependent Dockerfile CMD ["/bin/bash"] RUN useradd me ADD . . RUN ./installer.sh --javahome /usr/lib/jvm/java-8-openjdk-amd64 

您尝试使用的oracle linux映像不包含java:

 $ docker run -it --rm oraclelinux:7.3 /bin/bash [root@f95110d33bde /]# ls -al /usr/lib/jvm/java-8-openjdk-amd64 ls: cannot access /usr/lib/jvm/java-8-openjdk-amd64: No such file or directory [root@f95110d33bde /]# ls /usr/lib/ binfmt.d/ dracut/ kernel/ modprobe.d/ python2.7/ sse2/ systemd/ udev/ debug/ games/ locale/ modules-load.d/ rpm/ sysctl.d/ tmpfiles.d/ yum-plugins/ [root@f95110d33bde /]# find . -name java ./etc/pki/ca-trust/extracted/java ./etc/pki/java 

如果你正在安装java,你需要包括你已经采取的重复步骤来做到这一点。

请注意,您通常会FROM oraclelinux:7.3构build映像,而不是重现此映像构build的上游部分。

你也可以考虑使用来自Docker Hub的官方OpenJDK镜像作为你的Docker文件的基础,而不是从头构build所有东西。

如果您绝对需要使用Oracle Linux作为容器内的用户空间,则应该扩展Oracle OpenJDK映像或Oracle Java 8 JDK 。

你很想FROM scratch构build一个图像。