我需要在python3-onbuild图片中运行一个java程序(它基于debian jessie) 。 我使用java的安装扩展了dockerfile,但如果我尝试打印出版本,则会导致
系统错误:exec:" java":$ 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"]
任何想法都错了,我该怎么解决?
答案 0 :(得分:2)
我认为你误解了ONBUILD
。来自docs:
ONBUILD指令向图像添加触发指令 当图像用作基础时,稍后执行 另一个构建。触发器将在上下文中执行 下游构建,好像它已经被插入后立即 FROM下游Dockerfile中的FROM指令。
因此,当docker build
遇到FROM
中的Dockerfile
指令时,它将执行来自python图像的ONBUILD
指令。在Dockerfile
中,ONBUILD
指令永远不会被执行,因为只有在从另一个Dockerfile
引用图像时才会触发它们。
我认为您只是想使用RUN
代替ONBUILD
,但我不确定您为什么要尝试使用ONBUILD
。