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

Come posso inizializzare un database MySQL con schema in un contenitore Docker?

Ho riscontrato lo stesso problema in cui volevo inizializzare lo schema della mia istanza MySQL Docker, ma ho riscontrato difficoltà a farlo funzionare dopo aver eseguito alcuni googling e aver seguito gli esempi di altri. Ecco come ho risolto.

1) Scarica lo schema MySQL in un file.

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

2) Usa il comando ADD per aggiungere il tuo file schema a /docker-entrypoint-initdb.d directory nel contenitore Docker. Il docker-entrypoint.sh file eseguirà tutti i file in questa directory che terminano con ".sql" contro il database MySQL.

File Docker:

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

3) Avvia l'istanza Docker MySQL.

docker-compose build
docker-compose up

Grazie a Configurazione di MySQL e importazione di dump all'interno File Docker per avermi informato su docker-entrypoint.sh e sul fatto che esegue sia script SQL che shell!