Evitando interação do usuário com o tzdata ao instalar o certbot em um contêiner docker

9

Eu quero instalar o certbot em um ambiente de encaixe com uma imagem do Ubuntu 16.04:

Por exemplo:

docker run -it ubuntu:16.04 /bin/bash

Quando estou dentro do contêiner, a maneira mais simples de instalar o certbot não funciona, pois exige a intervenção do usuário:

apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository -y -u ppa:certbot/certbot && \
apt-get install -y certbot

O problema é tzdata , que para com este diálogo interativo:

Extracting templates from packages: 100%
Preconfiguring packages ...
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

 1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
 2. America     5. Arctic     8. Europe    11. SystemV
 3. Antarctica  6. Asia       9. Indian    12. US
Geographic area: 

Curiosamente, funciona quando eu instalo o tzdata antes de adicionar o ppa:

apt-get update && \
apt-get install -y tzdata && \
apt-get install -y software-properties-common && \
add-apt-repository -y -u ppa:certbot/certbot && \
apt-get install -y certbot

Perguntas:

  • Por que é importante instalar o tzdata antes ou depois de adicionar o ppa?
  • Existe uma abordagem melhor para evitar o diálogo interativo ao instalar o certbot?
por Philipp Claßen 26.04.2017 / 22:27

1 resposta

5

Para executar dpkg (atrás de outras ferramentas como o Apt) sem diálogo interativo, você pode definir uma variável de ambiente como

DEBIAN_FRONTEND=noninteractive
    
por Aditya 09.03.2018 / 14:08