При создании из Dockerfile Debian /Ubuntu пакет install debconf Неинтерактивная установка не разрешена

Я установил следующую среду, чтобы во время установки apt-get не задавался вопрос /диалог:

ENV DEBIAN_FRONTEND noninteractive    # export DEBIAN_FRONTEND="noninteractive"

Что эквивалентно:

export DEBIAN_FRONTEND="noninteractive"

Тем не менее, при создании образа из файла Docker, в конце одного из установленных пакетов Debian /Ubuntu (с использованием apt-get install), конфигурация пакета debconf говорит:

debconf: unable to initialize frontend: Noninteractive    # export DEBIAN_FRONTEND="noninteractive"
debconf: (Bareword "Debconf::FrontEnd::Noninteractive" not allowed while "strict subs" in use at (eval 35) line 3, <> line 1.)
debconf: falling back to frontend: Noninteractive
Subroutine BEGIN redefined at (eval 36) line 2, <> line 1.

Вау ... Я нашел свою ошибку. Невозможно поместить комментарий в строки ENV в Dockerfile. Я собираюсь ответить себе, поскольку я уверен, что это укусит некоторых других людей ...

21 голос | спросил Phil L. 8 PM00000050000003931 2014, 17:04:39

1 ответ


27

активно обескураживает , чтобы установить DEBIAN_FRONTEND до noninteractive через ENV. Причина в том, что переменная окружения сохраняется после сборки, например. при запуске docker exec -it ... bash. Настройка здесь не имеет смысла.

Существуют два других возможных способа:

  1. Установите его с помощью ARG, поскольку это доступно только во время сборки:

    ARG DEBIAN_FRONTEND=noninteractive
    RUN apt-get -qq install {your-package}
    
  2. Установите его на лету, когда потребуется.

    RUN apt-get update && \
        DEBIAN_FRONTEND=noninteractive apt-get -qq install {your-package}
    
ответил k0pernikus 17 PM000000120000001231 2016, 12:29:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132