Docker est une solution simple, fiable et rapide pour déployer des applications, ou uniquement faire des tests. Il est ainsi accessible à tous de déployer une belle stack Docker Wordpress / PHP-FPM / MariaDB / Varnish en quelques clics. Mais comment effectuer des manipulations simple localement, quand on est dans un environnement dockerisé ? Comme importer un dump SQL / GZ dans un docker MariaDB / MySQL ?

comment-importer-dump-sql-docker-mariadb-container-sql

Le dump SQL, incontournable des migrations en tout genre

Si vous hébergez ou gérez des sites type CMS (Drupal, Wordpress, Joomla, Prestashop…), vous avez certainement eu à dealer avec des fichiers dump SQL. Dans mon cas, c’est lors de tests d’hébergement de Wordpress sur Kubernetes, et lors de migrations de site vers une infrastructure dockerisée que j’ai du trouver un moyen de migrer mon dump vers le Docker MariaDB. Grâce à Google, la réponse se trouve facilement, mais rarement en français dans les premiers résultats.

Héberger Wordpress sur Docker peut présenter de nombreux avantages :

  • Migration de serveur simplifiée
  • Isolation totale de vos sites si vous hébergez plusieurs instances Wordpress sur un même serveur
  • Choix d’une version de PHP spécifique à chaque instance Wordpress
  • Fixation d’une version de Wordpress dans votre stack et blocage des mises à jour auto (simplifie les tests et les upgrades de versions majeures)
  • Tweak et optimisations diverses grâce à un Dockerfile aux petits oignons

Si vous souhaitez tester cette solution, je vous invite à faire un tour sur mon article dédié.

La solution compliquée pour importer un dump SQL dans un Docker MariaDB

Pour ceux qui souhaitent faire les choses bien, étape par étape, voici une méthode pas à pas, pour importer un dump SQL dans une base de données sous Docker (MariaDB, MySQL). Vous allez avoir besoin de monter un volume ( par exemple /chemin/local/vers/dossier ) dans le Docker MariaDB, contenant votre dump. Par exemple :

docker run --name mariadb -d -v /chemin/local/vers/dossier:/tmp -p 3306 mariadb:latest
## Connexion au Docker Mariadb
docker exec -it docker-mariadb /bin/bash

## Connexion à l'instance MySQL
mysql -u mon-user -p

## Création de la base de données
CREATE DATABASE ma-base;
USE ma-base;

## Importation du dump monté en volume
source /tmp/le_dump.sql

La solution beaucoup plus simple et rapide de faire exactement la même chose

Si vous ne souhaitez pas monter de volume, ni modifier quoi que ce soit à votre container Docker MariaDB, voici une méthode beaucoup plus simple pour importer un dump SQL dans un Docker MariaDB :

docker exec -i docker-mariadb mysql -h127.0.0.1 -umon-user -p ma-base < /chemin/local/vers/dossier/le_dump.sql

Pour découvrir d’autres articles en lien avec Docker c’est par ici, ou pour tout ce qui concerne le Self Hosting.

Crédit : Gist Gerald Villorente