Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL no Docker congelado na configuração de senha root


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.