如何编写可以传递yes的Dockerfile来提示许可协议?
/* @var $model Application\Model\{@@@$tableName} */
然后构建失败。 docker build -t "{user}/{tags}" .
,显示如下消息:
docker logs {container id}
答案 0 :(得分:3)
请点击此处http://example.com/products/post2。
我在Dockerfile中添加了这三行代码:
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND teletype
RUN apt-get update -y && apt-get install -y --no-install-recommends apt-utils \
最后成功构建了泊坞窗图像!
答案 1 :(得分:0)
您可以根据以下条件尝试此解决方案:https://unix.stackexchange.com/a/106553
$ apt-get install -y PACKAGE
debconf
设置 $ debconf-get-selections | grep PACKAGE
PACKAGE PACKAGE/license string y
ARG DEBIAN_FRONTEND=noninteractive
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
echo PACKAGE PACKAGE/license string y | debconf-set-selections && \
apt-get install -y PACKAGE
您可能需要为debconf-utils
安装debconf-set|get-selections
。
答案 2 :(得分:0)
对我来说,安装前的ACCEPT_EULA=y
完成了这项工作,例如
RUN apt-get update && ACCEPT_EULA=Y apt-get install PACKAGE -y
答案 3 :(得分:0)
我能够在 Dockerfile 的构建过程中通过管道传输需要使用 yes
命令确认的安装来同意许可,该命令将 y
或 yes
发送到任何确认提示(见here)。之前,我的构建过程仍然像您描述的那样卡在 [yes/no]
提示上。请注意,this answer 中描述的步骤仍然是必需的。没有它们,yes 命令似乎还不够,因为构建过程仍然停留在 [yes/no]
提示符处。
这是我在 dockerfile 中的内容:
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND teletype
RUN yes | apt-get install <package>
它实际上也适用于这些“debian确认对话”(不是关于正确的术语):
也许有帮助:)
答案 4 :(得分:-2)
您可以在Dockerfile中的行末写一个-y
。
示例:
RUN apt-get update
RUN apt-get install netcat -y