python3-onbuild docker

时间:2015-10-16 15:35:11

标签: docker docker-compose

我需要在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"]

任何想法都错了,我该怎么解决?

1 个答案:

答案 0 :(得分:2)

我认为你误解了ONBUILD。来自docs

  

ONBUILD指令向图像添加触发指令   当图像用作基础时,稍后执行   另一个构建。触发器将在上下文中执行   下游构建,好像它已经被插入后立即   FROM下游Dockerfile中的FROM指令。

因此,当docker build遇到FROM中的Dockerfile指令时,它将执行来自python图像的ONBUILD指令。在Dockerfile中,ONBUILD指令永远不会被执行,因为只有在从另一个Dockerfile引用图像时才会触发它们。

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