Java 在 python3-onbuild docker

Java in python3-onbuild docker

我需要 运行 java 程序在 python3-onbuild 图像中(它基于 debian jessie) . 我通过安装 java 扩展了 dockerfile,但是如果我尝试打印版本,它会导致

System error: exec: "java": executable file not found in $PATH

我用我的代码创建了一个 repository

我的 Dockerfile:

FROM python:3-onbuild
ONBUILD RUN ["apt-get", "install", "-y", "openjdk-7-jre"]

# Define commonly used JAVA_HOME variable
ONBUILD ENV JAVA_HOME /usr/java/default
ONBUILD ENV PATH $PATH:$JAVA_HOME/bin

CMD ["java", "-version"]

知道哪里出了问题以及我该如何解决吗?

我觉得你误会了ONBUILD。来自 docs:

The ONBUILD instruction adds to the image a trigger instruction to be executed at a later time, when the image is used as the base for another build. The trigger will be executed in the context of the downstream build, as if it had been inserted immediately after the FROM instruction in the downstream Dockerfile.

因此,当 docker build 遇到 Dockerfile 中的 FROM 指令时,它将执行 python 映像中的 ONBUILD 指令。在您的 Dockerfile 中,ONBUILD 指令永远不会执行,因为只有在从另一个 Dockerfile.

引用图像时才会触发它们

我认为您只是想使用 RUN 而不是 ONBUILD,但我不确定您为什么要尝试使用 ONBUILD