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-respository
是python-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