gpt4 book ai didi

docker - python3-onbuild docker中的Java

转载 作者:行者123 更新时间:2023-12-02 21:27:48 26 4
gpt4 key购买 nike

我需要在python3-onbuild镜像中运行一个Java程序(它基于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 buildFROM中遇到 Dockerfile指令时,它将在python镜像中的 ONBUILD指令上执行。在您的 Dockerfile中,永远不会执行 ONBUILD指令,因为只有从另一个 Dockerfile引用图像时才会触发它们。

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

关于docker - python3-onbuild docker中的Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33174333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com