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
。
我需要 运行 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
。