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

¿Cómo puedo inicializar una base de datos MySQL con esquema en un contenedor Docker?

Tuve este mismo problema en el que quería inicializar el esquema de mi instancia de MySQL Docker, pero tuve dificultades para hacer que esto funcionara después de buscar en Google y seguir los ejemplos de otros. Así es como lo resolví.

1) Vuelca tu esquema MySQL a un archivo.

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

2) Use el comando ADD para agregar su archivo de esquema a /docker-entrypoint-initdb.d directorio en el contenedor de Docker. docker-entrypoint.sh file ejecutará cualquier archivo en este directorio que termine con ".sql" contra la base de datos MySQL.

Dockerfile:

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) Inicie la instancia MySQL de Docker.

docker-compose build
docker-compose up

Gracias a Configurar MySQL e importar dump dentro Dockerfile por darme una pista sobre docker-entrypoint.sh y el hecho de que ejecuta SQL y scripts de shell.