ADD> LOAD .SQL usando Docker Automated build y Compose

¿Cuál es la forma óptima de cargar en un volcado de sql al usar docker-compose + docker builds automatizadas?

He estado ignorando Docker-Comose por un momento y tratando de entender Docker y sus comstackciones automáticas al principio, pero me he dado count de que probablemente necesite Docker-Componer si quiero lograr el objective de mi proyecto que es usar un command 1 y desde que tienen un clúster Docker de 3 sitios completamente operativo

1xHAProxy
3xUbuntu / wp
3xMysqld

En mi Dockerfile puedo simplemente include el db.sql de mi repository Github como

ADD db.sql /tmp/db.sql 

Al no encontrar una mejor práctica, cómo debo cargar mi database sin escribir ningún command fuera de la compilation.

Quiere saber su solución a esto usando Dockerfile o Compose

Simplemente ejecutando uno de los commands a continuación, mysql FROM mysql con ADD db.sql db.sql debe ser comstackdo / ejecutado mientras carga db.sql en mysql db wp

Dockerfile

 $docker run -d user/repo:tag 

docker-compose.yml

 $docker-compose up 

Si estoy totalmente en el path equivocado aquí, por favor dame algunas references. También podría mencionar que estoy planeando usar CoreOS una vez que me sienta bien con Docker. Entonces, si las mejores prácticas en una configuration de CoreOS> Docker es otra cosa, ¡házmelo saber!

Hay dos opciones para inicializar un file SQL durante la compilation o el time de ejecución:

La primera sería simplemente basar su image MySQL en la image oficial y colocar su file SQL en /docker-entrypoint-initdb.d (usando algo como ADD my.sql /docker-entrypoint-initdb.d/ en el Dockerfile ). La image oficial tiene un script de punto de input bastante complejo ( https://github.com/docker-library/mysql/blob/master/5.7/docker-entrypoint.sh ) que inicia MySQL, inicializa un nombre de usuario y contraseña, y scripts del /docker-entrypoint-initdb.d carpeta.

La otra opción sería hacer algo como la respuesta en https://stackoverflow.com/a/25920875/684908 y simplemente agregar un command como:

 COPY dump.sql /tmp/ RUN /bin/bash -c "/usr/bin/mysqld_safe &" && \ sleep 5 && \ mysql -u root -e "CREATE DATABASE mydb" && \ mysql -u root mydb < /tmp/dump.sql