Ik had hetzelfde probleem waarbij ik het schema van mijn MySQL Docker-instantie wilde initialiseren, maar ik kreeg problemen om dit werkend te krijgen nadat ik wat Googlen had gedaan en de voorbeelden van anderen had gevolgd. Hier is hoe ik het heb opgelost.
1) Dump je MySQL-schema naar een bestand.
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
2) Gebruik de opdracht ADD om uw schemabestand toe te voegen aan de /docker-entrypoint-initdb.d
map in de Docker-container. De docker-entrypoint.sh
bestand zal alle bestanden in deze map uitvoeren die eindigen op ".sql"
tegen de MySQL-database.
Dockerbestand:
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) Start de Docker MySQL-instantie op.
docker-compose build
docker-compose up
Dankzij MySQL instellen en dump binnen Dockerbestand om me op de hoogte te houden van de docker-entrypoint.sh en het feit dat het zowel SQL- als shell-scripts uitvoert!