dockerjava7安装失败

我试图通过ppa(运行add-apt-repository ppa:webupd8team / java -y)在我的泊坞窗图像中安装java7,但它失败,出现此错误:

returned a non-zero code: 127 

以下是build议正确安装的方法,但不起作用。 我也尝试了两个ppas。

 RUN apt-get install python-software-properties -y RUN add-apt-repository ppa:webupd8team/java -y #RUN add-apt-repository ppa:eugenesan/java -y RUN apt-get update RUN apt-get install oracle-java7-installer -y 

这里是日志输出:

 Step 28 : RUN add-apt-repository ppa:webupd8team/java -y ---> Running in b278761a4209 [91m/bin/sh: 1: add-apt-repository: not found [0m 

所以…我需要找出哪里/如果这个命令存在于一个辅助库或什么:

 add-apt-repository 

add-apt-repository似乎是python-software-properties安装的一部分。 除了在构build的其他区域popup这些消息外,在这一步中我没有看到任何真正的错误。 所以我假设如果我可以解决这个问题,上述的python步骤将根据需要进行安装:

  [91mdebconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline [0m[91mdebconf: unable to initialize frontend: Readline debconf: (This frontend requires a controlling tty.) debconf: falling back to frontend: Teletype [0m[91mdpkg-preconfigure: unable to re-open stdin: 

所以。 如何设置一个术语或对话框? 我以为 – 他允许这个

apt-get install命令中的-y告诉apt-get “假设是”,这与在非交互模式下运行的不一样。

您看到“无法初始化前端:对话框”消息,因为Debian正以交互模式运行apt-get 。 为了让它在非交互模式下运行,请将以下行添加到Dockerfile的开头:

 ENV DEBIAN_FRONTEND noninteractive 

现在你的命令将以非交互模式运行,所以apt-get不会尝试popup任何对话框。

至于你的实际错误,你是对的, add-apt-respositorypython-software-properties 。 尝试把apt-get update -y命令放在apt-get install python-software-properties命令的上面。

 RUN apt-get update -y && \ apt-get install python-software-properties -y && \ add-apt-repository ppa:webupd8team/java -y && \ apt-get update -y && \ apt-get install oracle-java7-installer -y && \ oracle-java7-set-default 

请注意,您需要执行两个apt-get update -y命令,一个在开始之前(通常是一个好习惯),一个在您添加了oracle java PPA之后。

apt-get手册

Docker ENV文档

add-apt-repository命令是software-properties-common pakage的一部分。 安装software-properties-common,而不是python-software-properties。

然后你可以添加ppa:webupd8team仓库。 但是还有一个问题。

设置accepted-oracle-license-v1-1并安装java。 下面的示例Dockerfile将完美工作。

 FROM ubuntu:14.04 RUN apt-get update RUN apt-get install software-properties-common -y RUN add-apt-repository ppa:webupd8team/java -y RUN apt-get update RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections RUN apt-get install oracle-java7-installer -y 

我尝试了一些不同的东西无济于事,所以我用OpenJDK来代替。 这让我越过这一步,到了下一个错误:-)。

 # method 2 RUN apt-get install openjdk-7-jre -y