A resposta aceita pode ser verdadeira em algum sentido abstrato, mas é completamente irrelevante para o assunto em questão. Você precisa de uma maneira de especificar a senha estaticamente. E a menos que você esteja usando a imagem oficial , você precisará disso seguindo ou não o dogma "um processo, um contêiner".
A resposta aqui diz como, mas deixa de fora uma configuração chave:você ainda tem que dizer ao
debconf
para usar o Não interativo
front-end, conforme descrito aqui
. Aqui está um exemplo de um
Dockerfile
funcionando com base no acima. FROM ubuntu:latest
MAINTAINER Jonathan Strange <[email protected]>
RUN apt-get update \
&& apt-get install -y apt-utils \
&& { \
echo debconf debconf/frontend select Noninteractive; \
echo mysql-community-server mysql-community-server/data-dir \
select ''; \
echo mysql-community-server mysql-community-server/root-pass \
password 'JohnUskglass'; \
echo mysql-community-server mysql-community-server/re-root-pass \
password 'JohnUskglass'; \
echo mysql-community-server mysql-community-server/remove-test-db \
select true; \
} | debconf-set-selections \
&& apt-get install -y mysql-server apache2 python python-django \
python-celery rabbitmq-server git
Isso não é muito diferente do que o oficial
Dockerfile
faz - embora eles lidem com a configuração de senha real de maneira um pouco diferente. Algumas pessoas tiveram sucesso definindo o DEBIAN_FRONTEND variável de ambiente para
não interativo
, igual a:ENV DEBIAN_FRONTEND noninteractive
No entanto, isso não parece funcionar em todos os casos. Usando
debconf
diretamente provou ser mais confiável para mim.