sql >> Database >  >> RDS >> Mysql

MySQL in Docker bevroren bij root-wachtwoordconfiguratie

Het geaccepteerde antwoord kan in abstracte zin waar zijn, maar het is volledig irrelevant voor de zaak in kwestie. U hebt een manier nodig om het wachtwoord statisch op te geven. En tenzij u de officiële afbeelding gebruikt , je hebt dat nodig, of je nu wel of niet het dogma van "één proces, één container" volgt.

Het antwoord hier vertelt hoe, maar het laat een sleutelinstelling weg:je moet nog steeds debconf . vertellen om de Noninteractive . te gebruiken front-end, zoals hier beschreven .

Hier is een voorbeeld van een werkend Dockerfile gebaseerd op het bovenstaande.

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

Dit is niet zo heel anders dan wat de officiële Dockerfile doet -- hoewel ze de eigenlijke wachtwoordconfiguratie enigszins anders behandelen.

Sommige mensen hebben succes gehad door in te stellen de DEBIAN_FRONTEND omgevingsvariabele naar noninteractive , zoals zo:

ENV DEBIAN_FRONTEND noninteractive

Dat blijkt echter niet in alle gevallen te werken. debconf gebruiken direct is voor mij betrouwbaarder gebleken.



  1. Kunnen opgeslagen procedures een resultatenset retourneren?

  2. Converteer SQL Server DateTime-object naar BIGINT (.Net ticks)

  3. Tabel maken en invoegen binnen dezelfde procedure in pl/sql

  4. Hoe kan ik het uitloggen van alle gebruikers van een website forceren?