如何编写可以通过yes来提示许可协议的Dockerfile?
1.在Dockerfile目录下,docker build -t "{user}/{tags}" .
然后构建失败。
docker logs {container id}
,显示消息如下:
Preparing to unpack .../ttf-mscorefonts-installer_3.4+nmu1ubuntu2_all.deb ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Configuring ttf-mscorefonts-installer
TrueType core fonts for the Web EULA END-USER LICENSE AGREEMENT FOR
MICROSOFT SOFTWARE
...
Do you accept the EULA license terms? [yes/no]
7条答案
按热度按时间7vux5j2d1#
对我来说,安装前的
ACCEPT_EULA=y
完成了这项工作,就像lvmkulzt2#
在这里讨论issue: [16.04] debconf: delaying package configuration, since apt-utils is not installed。
我在Dockerfile中添加了这三行代码:
终于可以搭建Docker镜像了!
biswetbf3#
我能够在Dockerfile的构建过程中通过管道安装来同意许可证,该安装需要使用
yes
命令进行确认,该命令将y
或yes
发送到任何确认提示符(参见here)。以前,我的构建过程仍然像你描述的那样在[yes/no]
提示符上卡住。请注意,this answer中描述的步骤仍然是必需的。如果没有它们,yes命令似乎不够,因为构建过程仍然会在[yes/no]
提示符上卡住。这就是我在dockerfile中的内容:
这样,我就可以在终端中自动接受提示:
它实际上也适用于这些“debian确认对话框”(不知道正确的术语):
也许这会有所帮助:)
i2loujxw4#
您可以尝试基于此的解决方案:https://unix.stackexchange.com/a/106553
1.首先手动安装软件包(即在现有容器上,在本地计算机上)
1.安装后,获取许可证
的
debconf
设置1.现在使用Dockerfile构建Docker镜像:
您可能需要为
debconf-set|get-selections
安装debconf-utils
。tmb3ates5#
对我有用的是使用expect。
已安装的依赖项:
apt-get install -y expect
然后执行:
没想到splunk start在构建docker镜像时卡住了。
nfzehxib6#
对于在Dockerfile中安装ttf-mscorefonts-installer Ubuntu包,上述解决方案都不起作用。最终对我起作用的是:
vfh0ocws7#
您可以在Dockerfile中的行尾写入
-y
。范例: