sql >> Base de Datos >  >> RDS >> Mysql

MySQL en Docker congelado en la configuración de contraseña de root

La respuesta aceptada puede ser cierta en algún sentido abstracto, pero es completamente irrelevante para el asunto en cuestión. Necesita una forma de especificar la contraseña de forma estática. Y a menos que esté utilizando la imagen oficial , lo necesitará independientemente de que siga o no el dogma de "un proceso, un contenedor".

La respuesta aquí dice cómo, pero omite una configuración clave:todavía tiene que decirle a debconf para usar el Noninteractive front-end, como se describe aquí .

Aquí hay un ejemplo de un Dockerfile en funcionamiento basado en lo anterior.

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

Esto no es demasiado diferente de lo que oficial Dockerfile lo hace, aunque manejan la configuración de la contraseña real de manera algo diferente.

Algunas personas han tenido éxito al configurar DEBIAN_FRONTEND variable de entorno a noninteractive , así:

ENV DEBIAN_FRONTEND noninteractive

Sin embargo, eso no parece funcionar en todos los casos. Usando debconf directamente ha demostrado ser más confiable para mí.