Comment configurer un environnement MySQL et PhpMyAdmin sous Docker? La réponse dans ce guide... :D

Configurer un environnement Docker peut s'avérer compliqué. Je vous explique donc ici comment configurer MySQL avec PhpMyAdmin dans ce guide. :)

Je continuerai ici le travail effectué dans la partie 1, où je vous ai expliqué comment configurer un environnement Docker pour un projet Symfony.

Prérequis

  • PHP 7.2.5 ou supérieur
  • Docker
  • Connaitre les concepts Docker
  • Système Mac ou Linux (pour Windows, je vous laisse adapter les commandes ;))
  • Une configuration Docker Compose avec un service PHP fonctionnel.

Démarrage

Cet article concerne la deuxième partie d'un guide complet pour configurer un environnement Docker avec un projet Symfony fonctionnant sous PHP-FPM, Nginx, MySQL et phpMyAdmin, organisé en trois parties:

  1. Configuration du projet avec un serveur Nginx et PHP-FPM. Accéder à l'article.
  2. Configuration du projet docker avec Mysql et phpMyAdmin.
  3. Migration la base de donnée SQLite vers Mysql.

Pour rappel, le fichier docker-compose.yml contient ceci:

version: '3.7'
services:
  php-fpm:
    container_name: php-fpm
    build: ./docker/php-fpm
    ports:
      - 9000:9001
    volumes:
      - .:/app/:cached
    networks:
      - site

  nginx:
    container_name: nginx
    build: ./docker/nginx
    ports:
      - "8000:80"
    depends_on:
      - php-fpm
    networks:
      - site
    volumes:
      - .:/app/:cached
networks:
  site:

Création du service MySQL

Un nouveau service mysql sera créé dans le fichier docker-compose.yml où l'image MySQL version 5.7 est utilisée.

Pour cela, ajoutez les lignes suivantes dans le fichier docker-compose.yml :

  mysql:
    image: mysql:5.7
    container_name: mysql
    command: ["--default-authentication-plugin=mysql_native_password"]
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password0
      MYSQL_DATABASE: symfony-demo
      MYSQL_USER: symfony-demo
      MYSQL_PASSWORD: symfony-demo
    networks:
      - mysql
networks:
  mysql:
volumes:
  db_data:

Une base symfony-demo est initialisé à partir de l'image Docker de MySQL.

Il faut également ajouter les lignes suivantes dans le service php-fpm:

  php-fpm:
    depends_on:
      - mysql
    networks:
      - mysql

Cette configuration sera très utile plus tard lorsque la base MySQL sera exploitée dans le projet.

On indique tout simplement à Docker que le service php-fpm dépend du service mysql.

networks permet de définir différents réseaux pour les services. Cela est utile si l'on souhaite une configuration poussée des réseaux mais l'on peut tout à fait mettre tous les services sur le même réseau.
volumes permet d'organiser différents chemins pour accéder à la configuration docker-compose.

Création du service PhpMyAdmin

Un nouveau service phpmyadmin sera également créé et sera basé sur l'image phpmyadmin.

Pour cela, ajoutez les lignes suivantes dans le fichier docker-compose.yml :

  phpmyadmin:
    depends_on:
      - mysql
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    links:
        - mysql
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_HOST: mysql
      MYSQL_ROOT_PASSWORD: password0
    networks:
      - site
      - mysql

L'image phpmyadmin est configuré de manière à ce:

  • qu'il dépend du service mysql via un lien direct (mot clé links)
  • que ses variables d'environnement sont basées sur la configuration du service mysql
  • que le port 8080 soit exposé pour accéder à PhpMyAdmin.

Test de la configuration

Maintenant que le fichier de conguration de Docker posséde les services MySQL et PhpMyAdmin, on peut tester leur fonctionnement.

Pour cela, exécutez la commande suivante:

docker-compose up -d

Testez maintenant le résultat sur le lien http://localhost:8080. Votre base de donnée symfony-demo peut être gérer via PhpMyAdmin.

PhpMyAdmin

Et la suite

Voici la fin de cette partie. :)

Il ne reste plus qu'a migrer la base SQLite vers MySQL, afin de l'utiliser dans le projet.

Je vous invite maintenant à lire la partie 3 pour migrer la base de donnée.

Je vous dis à plus pour le prochain article. xD


Liens utiles:

Article précédent Article suivant


Commentaires

Gravatar

Marc

23 mai 2024 14:11:27
Cet article représente une étape essentielle dans le processus de transformation digitale des entreprises, en mettant en lumière l'utilisation de docker pour configurer un environnement de développement optimal pour un projet Symfony. Docker, en tant que technologie de virtualisation légère et portable, joue un rôle essentiel dans cette transformation en permettant aux entreprises de moderniser leurs infrastructures informatiques et de développer des applications plus rapidement et de manière plus efficace. La configuration d'un environnement docker pour un projet symfony implique non seulement l'intégration de composants clés, mais aussi la mise en place d'une architecture agile et évolutive. Docker offre une flexibilité inégalée en permettant aux développeurs de créer des conteneurs isolés contenant tous les éléments nécessaires à l'exécution de leur application, ce qui simplifie grandement le processus de développement, de test et de déploiement. L'utilisation de docker dans le cadre de la transformation digitale univirtual permet aux entreprises de réduire les délais de mise sur le marché, d'améliorer la qualité des applications et de réduire les coûts informatiques. De plus, en adoptant une approche basée sur des conteneurs, les entreprises peuvent tirer parti de l'orchestration de conteneurs pour automatiser et simplifier la gestion de leur infrastructure, offrant ainsi une agilité accrue et une meilleure évolutivité. Cet article démontre comment docker univirtual joue un rôle central dans la transformation digitale des entreprises en facilitant la mise en place d'environnements de développement modernes et agiles pour les projets.

Ajouter un commentaire