如果需要交互式安装,如何在 docker 中安装 modules/stuff?

How does one install modules/stuff in docker if it requires interactive install?

这个问题困扰我很久了。每当我在构建期间尝试在 docker 上安装任何需要交互式安装的东西时,构建“挂起”在交互屏幕上。例如,对于一个 particular 项目,我需要在 docker 中安装 sddm (是的,是的,我知道我很愚蠢)。现在,构建只是挂在我应该 select 我的键盘布局的步骤。我该如何解决这些问题?

PS:并非所有安装脚本都是shell可以修改的脚本(如apt install sddm -y)。
PS:spawnecho 并不总是有用。

因为我在发布第一个答案时并没有完全理解这个问题。这是另一种可能的解决方案:

  • 运行 基础容器
  • 使用 bash docker exec -it mycontainer bash
  • 执行到容器中
  • 以交互方式安装所需的软件
  • 使用 docker commit mycontainer mytag
  • 从 运行ning 容器创建图像

其实答案很简单。 ENV 变量设置正确

ENV DEBIAN_FRONTEND=noninteractive