Docker - Quick MySQL / PHPMyAdmin or AdMiner
Un fichier docker-compose pour un mysql sur votre poste de développement avec des outils d'admin.
Voici un petit docker-compose que j'utilise régulièrement en développement pour importer des données dans un MySQL local pour faire une analyse rapide des données ou plus.
Il vous faudra préalablement avoir installé docker et docker-compose
Le docker compose crée un volume persistent docker pour MySQL, ce qui permet de pouvoir redémarrer le docker compose tout en ayant conservé les données.
Puis le script démarre 3 composants :
- MySQL
- Adminer
- PHPMyAdmin
mais vous devrez choisir si vous voulez utiliser AdMiner (petit utilitaire très simple pour voir la base de données et faire des requêtes) ou PHPMyAdmin. On vous rappelle que pour des raisons évidentes de sécurité, il ne faut pas avoir de PHPMyAdmin en prod!
# mysql-stack.yml
version: '3.7'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: testDB
MYSQL_USER: testDB
MYSQL_PASSWORD: testDB
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- testDB:/var/lib/mysql
ports:
- 3306:3306
adminer:
image: adminer
restart: always
ports:
- 8085:8080
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8086:80
volumes:
testDB:
Pour lancer les composants
docker-compose -f mysql-stack.yml up -d
Pour arrêter les composants
docker-compose -f mysql-stack.yml down
Note 1
J'expose le port 3306 de MySQL localement pour pouvoir m'y connecter avec mon code en développement
Note 2
Lorsque vous supprimez le container, si vous voulez supprimer les données aussi n'oubliez pas de supprimer le volume. Dans notre cas d'exemple :
docker volume rm testDB
Puis pour vérifier
docker volume ls