Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL dans Docker gelé à la configuration du mot de passe root

La réponse acceptée peut être vraie dans un certain sens abstrait, mais elle n'a aucun rapport avec le sujet en question. Vous avez besoin d'un moyen de spécifier le mot de passe de manière statique. Et à moins que vous n'utilisiez l'image officielle , vous en aurez besoin, que vous suiviez ou non le dogme "un processus, un conteneur".

La réponse ici indique comment, mais il laisse de côté un paramètre clé :vous devez toujours indiquer debconf pour utiliser le Noninteractive front-end, comme décrit ici .

Voici un exemple de travail Dockerfile basé sur ce qui précède.

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

Ce n'est pas trop différent de ce que le officiel Dockerfile fait - bien qu'ils gèrent la configuration réelle du mot de passe quelque peu différemment.

Certaines personnes ont réussi en définissant le DEBIAN_FRONTEND variable d'environnement à noninteractive , comme ceci :

ENV DEBIAN_FRONTEND noninteractive

Cependant, cela ne semble pas fonctionner dans tous les cas. Utiliser debconf directement s'est avéré plus fiable pour moi.