【发布时间】:2023-10-23 23:57:01
【问题描述】:
我正在尝试创建一个用于翻录 CD 的 Docker 映像(使用 abcde)。 这是 Dockerfile 的相关部分:
FROM ubuntu:17.10
MAINTAINER Graham Nicholls <graham@rockcons.co.uk>
RUN apt update && apt -y install eject vim ruby abcde
...
不幸的是,包“abcde”引入了一个邮件客户端(不确定是哪个),并且 apt 尝试通过询问要配置的邮件连接类型(智能主机/中继等)来配置它。
当 docker 运行时,它似乎没有从标准输入读取,所以我无法重定向到 docker 进程。
我尝试过将--nodeps 与 apt 一起使用(并将 apt 替换为 apt-get);不幸的是,--nodeps 似乎不再是受支持的选项并返回:
E: 命令行选项 --nodeps 无法与其他选项结合使用
有人建议使用 expect 来回答类似的问题,我宁愿避免。这似乎是一个“很难用谷歌搜索”的问题——我什么都找不到。
那么,有没有办法将答案传递给 apt 中的配置,或者防止 apt 拉入邮件客户端,这会更好 - 我不打算向 cddb 发送更新。
【问题讨论】:
-
通常,在 docker build 的上下文中,
apt安装是非交互式的(因为没有 tty)。设置DEBIAN_FRONTEND=noninteractive(例如,在安装包之前通过 Dockerfile 中的ENV语句)是否会阻止包提示? -
@larsks- 谢谢,但遗憾的是没有区别。哦,等等——只要正确阅读你的评论;让我试着把它放在 Dockerfile 中......这行得通,所以谢谢!但是:一般的答案呢 - 这对于 apt 命令非常有用,但是一般来说我需要从文件中重定向答案呢?
-
@Dan Lowe:感谢您的编辑,但我不与任何人争论 - 建议使用不同的开膛手的答案并不能解决一般问题,这就是我要提出的观点。
-
@GrahamNicholls 我没有做那个编辑,我之前的编辑做了那个编辑。您可以点击“edited ... ago”链接查看完整的编辑历史记录。
-
@DanLowe OIC,对不起!
标签: docker interactive apt