我是 Docker 和 Linux 方面的菜鸟,正在研究我所从事的共享项目中的 Dockerfile。我不明白的事情——在 Dockerfile 的顶部我们有:
# Never prompts the user for choices on installation/configuration of packages
ENV DEBIAN_FRONTEND=noninteractive
但在后来的一系列 DockerRUN
命令中,我看到它-yqq
被附加到所有apt-get
命令中:apt-get {install,update,upgrade} -yqq ...
。由于-yqq
应该自动回答问题apt-get
并使其保持沉默,所以我很困惑它是否多余。但我很难找到简单的答案,所以这里有一些问题:
- 是否
apt-get
直接读取值DEBIAN_FRONTEND
并相应地设置选项? - 对于设置的一个或多个if来说
-y
和是多余的吗?-qq
apt-get {install,update,upgrade}
DEBIAN_FRONTEND=noninteractive
答案1
DEBIAN_FRONTEND
由 读取debconf
,用于在许多包的维护者脚本中提示输入。apt
做不是考虑到这个环境变量,DEBIAN_FRONTEND=noninteractive
所以不是与和apt
选项是多余的。-y
-q
软件包安装中还可以涉及各种其他工具;参见例如使用 apt-get install 时强制非交互式“dpkg --configure”。