在docker build期间如何接受许可协议?

时间:2018-03-01 12:41:08

标签: docker ubuntu-16.04

如何编写可以传递yes的Dockerfile来提示许可协议?

  1. 在Dockerfile目录下,/* @var $model Application\Model\{@@@$tableName} */ 然后构建失败。
  2. docker build -t "{user}/{tags}" .,显示如下消息:

    docker logs {container id}

5 个答案:

答案 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

  1. 首先手动安装软件包(即在现有容器上,在本地计算机上)
    $ apt-get install -y PACKAGE
  1. 安装后,获取许可证的debconf设置
    $ debconf-get-selections | grep PACKAGE
    PACKAGE    PACKAGE/license    string    y
  1. 现在要使用Dockerfile构建映像:
    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 命令确认的安装来同意许可,该命令将 yyes 发送到任何确认提示(见here)。之前,我的构建过程仍然像您描述的那样卡在 [yes/no] 提示上。请注意,this answer 中描述的步骤仍然是必需的。没有它们,yes 命令似乎还不够,因为构建过程仍然停留在 [yes/no] 提示符处。

这是我在 dockerfile 中的内容:

ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND teletype
RUN yes | apt-get install <package>

这样,我就可以在终端中自动接受提示: enter image description here

它实际上也适用于这些“debian确认对话”(不是关于正确的术语): enter image description here

也许有帮助:)

答案 4 :(得分:-2)

您可以在Dockerfile中的行末写一个-y

示例:

RUN         apt-get update
RUN         apt-get install netcat -y