Docker找不到JVM

时间:2017-04-21 00:19:06

标签: docker jvm dockerfile

我正在尝试构建的容器需要我在/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

2 个答案:

答案 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 imageOracle Java 8 JDK

你很想建立一个图像FROM scratch