Eu configurei o seguinte ambiente para que nenhuma pergunta / diálogo seja feita durante a instalação do apt-get:
ENV DEBIAN_FRONTEND noninteractive # export DEBIAN_FRONTEND="noninteractive"
O que equivale a:
export DEBIAN_FRONTEND="noninteractive"
No entanto, ao criar uma imagem a partir de um Dockerfile, no final de uma instalação específica do pacote Debian / Ubuntu (usando o apt-get install), a configuração do pacote debconf diz:
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.
Uau ... Encontrei o meu erro. Não há como colocar comentários nas linhas ENV no Dockerfile. Vou responder a mim mesmo, pois tenho certeza de que isso morderá outras pessoas ...
Ok, a fonte do problema foi: você não pode usar # para colocar comentários nas linhas ENV nos Dockerfiles, porque não há delimitador para dizer "variável de fim de env", tudo o que estiver após o nome da variável e o espaço imediatamente a seguir estará no variável.
ou seja, com a linha Dockerfile:
A variável:
conterá exatamente toda essa linha:
e é equivalente a fazer:
Eu estava quase cancelando minha pergunta, mas com os mecanismos de pesquisa e o Stack Exchange, algumas pessoas provavelmente encontrarão seu erro aqui algum dia ;-)
fonte
ENV
paraDEBIAN_FRONTEND
, veja: github.com/docker/docker/issues/4032