Connexion d’une Application PHP à une base de données MySQL Dockerisée

Dockeriser les composants des applications, notamment la base de données, est devenu une pratique courante pour améliorer la mise en place, la gestion et la portabilité des applications. Cet article explore et décrit les étapes pour dockeriser une base de données MySQL et la connecter à une application PHP comme Symfony ou PrestaShop.

Prérequis

Avant de commencer, assurez-vous d’avoir installé Docker et Docker Compose sur votre machine. Vous pouvez les installer en suivant ce lien.

1. Créer le service MySQL

Commencer par créer un fichier docker-compose.yml pour décrire et configurer le service MySQL.

Dans ce fichier, le service MySQL est défini sous le nom de my-db avec le conteneur explicitement nommé my-db-instance. Ce service utilise l’image Docker de MySQL version 8.4. Préciser une version spécifique au lieu d’utiliser latest est important. Cela permet de garantir la stabilité et la compatibilité avec votre application.
La directive restart: always assure que le conteneur redémarre automatiquement en cas d’arrêt ou de crash, augmentant ainsi la disponibilité et la résilience du service.
Le mappage des ports 3306:3306 expose le port MySQL standard à l’extérieur du conteneur, permettant ainsi à l’application sur l’hôte de pouvoir accéder à la base de données.
On persiste ensuite les données de l’instance MySQL. Cela évite les pertes de données même si le conteneur est supprimé ou recréé, car celles-ci sont conservées dans le volume Docker nommé mysql-data.
On finit la déclaration du service par la définition des variables d’environnement qui configurent la base de données MySQL lors de la création du conteneur.

2. Lancer une instance MySQL

Pour démarrer le conteneur MySQL, exécuter la commande suivante dans le répertoire où se trouve votre fichier docker-compose.yml :

3. Vérifier le status de l’instance

Il est essentiel de vérifier que le conteneur est en cours d’exécution pour s’assurer qu’il est bien disponible. Pour cela, utiliser la commande suivante :

Cette commande liste tous les conteneurs Docker en cours d’exécution, y compris my-db-instance.

4. Configurer l’application PHP

Pour connecter une application PHP à la base de données MySQL dockerisée, vous devez configurer votre fichier d’environnement avec les informations de connexion à la base de données.

a. Symfony

Pour une application Symfony, ajouter la ligne suivante à votre fichier d’environnement :

b. PrestasShop

Pour un site e-commerce basé sur PrestaShop, le fichier de configuration de la base de données (app/config/parameters.php) doit être mis à jour :

5. Vérifier la Connexion

a. Symfony

Pour une application Symfony, vous pouvez vérifier la connexion à la base de données en exécutant la commande doctrine suivante :

Cette commande génère un fichier de migration pour toutes les modifications détectées dans les entités de votre application.

b. PrestaShop

Quant à PrestaShop, l’installateur web détectera automatiquement les paramètres de la base de données lors de l’installation.

En suivant les étapes décrites ci-dessus, vous pouvez connecter facilement une application PHP, comme Symfony ou PrestaShop, à une base de données MySQL dockerisée, garantissant ainsi la facilité de gestion et la stabilité de votre application.

Retour en haut