Docker构建失败:返回了一个非零代码:1

3

Dockerfile1

FROM ubuntu:latest
MAINTAINER ME
RUN apt-get update
RUN apt-get update && apt-get install -y net-tools \
&& apt-get install inetutils-traceroute \
&& apt-get install iputils-ping \
&& apt-get install xinetd telnetd

Dockerfile2

FROM ubuntu:latest
MAINTAINER ME
RUN apt-get update
RUN apt-get update && apt-get install -y net-tools
RUN apt-get update && apt-get install inetutils-traceroute
RUN apt-get update apt-get install iputils-ping
RUN apt-get install xinetd telnetd
FROM ubuntu:latest
MAINTAINER ME
RUN apt-get update
RUN apt-get install inetutils-traceroute
RUN apt-get install -y net-tools
RUN apt-get update apt-get install iputils-ping
RUN apt-get install xinetd telnetd

我尝试了所有的dockerfile版本,但每次都遇到相同的错误:

The command '/bin/sh -c apt-get update && apt-get install -y net-tools && apt-get install inetutils-traceroute && apt-get install iputils-ping && apt-get install xinetd telnetd' returned a non-zero code: 1

有人发布了一个可行的答案,但在我接受之前将其删除了... - Popeye
7
你的问题在于 apt-get install 命令要求进行交互,如果不加上 -y 选项就会失败,因为没有可以交互的内容。请阅读编写 Dockerfile 的最佳实践,以了解正确添加一组软件包的方法。 - Anya Shenanigans
2个回答

6

有人发布了一个答案,但在我接受之前将其删除了。不过这里还是它:

FROM ubuntu:latest
MAINTAINER ME

RUN apt-get update && apt-get install -y \
net-tools inetutils-traceroute \
iputils-ping xinetd telnetd

这个有效!!


0
尝试在Docker环境中使用apt-get或apt管理器时,可以尝试使用-y选项。例如:
RUN apt-get update
RUN apt -y install net-tools

没有使用-y选项,apt-get会询问一个澄清的问题 - “您确定要安装吗?”。 没有回答,Docker将以代码1放弃安装。 这就是问题所在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接