Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL in Docker bloccato nella configurazione della password di root

La risposta accettata può essere vera in un certo senso astratto, ma è del tutto irrilevante per la questione in questione. È necessario un modo per specificare la password in modo statico. E a meno che tu non stia utilizzando l'immagine ufficiale , ti servirà indipendentemente dal fatto che tu segua o meno il dogma "un processo, un contenitore".

La risposta qui spiega come, ma tralascia un'impostazione chiave:devi ancora dire a debconf per utilizzare il Noninteractive front-end, come descritto qui .

Ecco un esempio di un Dockerfile funzionante in base a quanto sopra.

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

Non è molto diverso da ciò che ufficiale Dockerfile fa -- anche se gestiscono la configurazione della password effettiva in modo leggermente diverso.

Alcune persone hanno avuto successo impostando il DEBIAN_FRONTEND variabile di ambiente su noninteractive , in questo modo:

ENV DEBIAN_FRONTEND noninteractive

Tuttavia, ciò non sembra funzionare in tutti i casi. Usando debconf direttamente si è dimostrato più affidabile per me.