Docker - Quick MySQL / PHPMyAdmin or AdMiner

Un fichier docker-compose pour un mysql sur votre poste de développement avec des outils d'admin.

Docker - Quick MySQL / PHPMyAdmin or AdMiner

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