我正在尝试通过ppa(RUN add-apt-repository ppa:webupd8team/java -y)在我的docker镜像中安装java7,但它失败并出现此错误:
returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud)
以下是建议正确安装的方法,但它不起作用.我也试过了两个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
Run Code Online (Sandbox Code Playgroud)
这是日志输出:
Step 28 : RUN add-apt-repository ppa:webupd8team/java -y
---> Running in b278761a4209
[91m/bin/sh: 1: add-apt-repository: not found
[0m
Run Code Online (Sandbox Code Playgroud)
所以...我需要找出辅助库中存在此命令的位置或内容:
add-apt-repository
Run Code Online (Sandbox Code Playgroud)
add-apt-repository似乎是python-software-properties安装的一部分.除了在构建的其他区域弹出的这些消息之外,我在该步骤中没有看到任何真正的错误.所以我假设如果我能解决这个问题,前面提到的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:
Run Code Online (Sandbox Code Playgroud)
所以.如何设置术语或对话框?我以为-y允许这个
Chr*_*nel 30
在-y你的apt-get install命令告诉apt-get"承担起是",这是不一样的非交互模式下运行.
您正在看到"无法初始化前端:对话框"消息,因为Debian apt-get以交互模式运行.要告诉它以非交互模式运行,请将此行添加到Dockerfile的开头:
ENV DEBIAN_FRONTEND noninteractive
Run Code Online (Sandbox Code Playgroud)
现在您的命令将以非交互模式运行,因此apt-get不会尝试弹出任何对话框.
至于你的实际错误,你说得对,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
Run Code Online (Sandbox Code Playgroud)
注意,你需要做两个apt-get update -y命令,一个在你开始之前(总是一个好习惯进入)和一个在你添加oracle java PPA之后.
nac*_*yot 13
add-apt-repository命令是软件属性 - 常见包含的一部分.安装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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16331 次 |
| 最近记录: |