Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso inicializar um banco de dados MySQL com esquema em um contêiner do Docker?


Eu tive esse mesmo problema em que queria inicializar o esquema da minha instância do MySQL Docker, mas tive dificuldade em fazer isso funcionar depois de fazer algumas pesquisas no Google e seguir os exemplos de outras pessoas. Aqui está como eu resolvi.

1) Despeje seu esquema MySQL em um arquivo.
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

2) Use o comando ADD para adicionar seu arquivo de esquema ao /docker-entrypoint-initdb.d diretório no contêiner do Docker. O docker-entrypoint.sh file irá executar quaisquer arquivos neste diretório que terminem com ".sql" contra o banco de dados 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 a instância do Docker MySQL.
docker-compose build
docker-compose up

Graças a Configurar o MySQL e importar o dump dentro Dockerfile por me informar sobre o docker-entrypoint.sh e o fato de que ele executa scripts SQL e shell!