我正在尝试构建的容器需要我在/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
答案 0 :(得分:1)
您尝试使用的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,则需要包含您执行此操作的reproducible steps。
注意,您通常会构建图像FROM oraclelinux:7.3
,而不是复制此图像构建的上游部分。
答案 1 :(得分:0)
您还可以考虑使用Docker Hub中的official OpenJDK image作为Dockerfile
的基础,而不是从头开始构建所有内容。
如果您绝对需要使用Oracle Linux作为容器内的用户空间,则应该扩展Oracle OpenJDK image或Oracle Java 8 JDK。
你很想建立一个图像FROM scratch
。