L’installation et la configuration de Laravel sur Docker Compose constituent une démarche avancée mais très efficace pour le développement web moderne. Laravel, un framework PHP élégant et puissant, peut être intégré à Docker Compose, une solution de gestion de conteneurs, pour simplifier le processus de développement, la gestion des dépendances et la portabilité des applications. Cette approche offre un environnement isolé, reproductible et évite les conflits entre les dépendances du projet et celles du système hôte.
Pour commencer, assurez-vous d’avoir Docker et Docker Compose installés sur votre machine. Vous pouvez les télécharger depuis les sites officiels respectifs de Docker. Une fois ces prérequis installés, suivez les étapes ci-dessous pour installer et configurer Laravel avec Docker Compose :

La solution définitive pour raccourcir les liens et gérer vos campagnes digitales de manière professionnelle.
• Raccourcissement instantané et rapide des liens
• Pages de profil interactives
• Codes QR professionnels
• Analyses détaillées de vos performances digitales
• Et bien plus de fonctionnalités gratuites !
-
Création de la structure du projet :
- Commencez par créer un répertoire pour votre projet Laravel, puis placez-vous à l’intérieur.
- Utilisez la commande suivante pour initialiser un nouveau projet Laravel dans le répertoire que vous avez créé :
bash
docker run --rm -v $(pwd):/app composer create-project --prefer-dist laravel/laravel .
-
Configuration de Docker Compose :
- Créez un fichier
docker-compose.yml
à la racine de votre projet. Ce fichier définira les services nécessaires pour exécuter Laravel. - Exemple de contenu du fichier
docker-compose.yml
:yamlversion: '3' services: app: image: php:7.4-fpm volumes: - .:/var/www/html working_dir: /var/www/html networks: - app-network web: image: nginx:latest ports: - "8080:80" volumes: - .:/var/www/html depends_on: - app networks: - app-network networks: app-network: driver: bridge
- Créez un fichier
-
Configuration de l’environnement Laravel :
- Copiez le fichier
.env.example
à la racine du projet et renommez-le en.env
. - Modifiez le fichier
.env
pour configurer la base de données, les paramètres d’environnement, etc. - Mettez à jour le fichier
docker-compose.yml
pour inclure le service de base de données (MySQL, PostgreSQL, etc.) si nécessaire.
- Copiez le fichier
-
Lancement des conteneurs :
- Utilisez la commande suivante pour démarrer les conteneurs définis dans le fichier
docker-compose.yml
:bashdocker-compose up -d
- Utilisez la commande suivante pour démarrer les conteneurs définis dans le fichier
-
Installation des dépendances de Laravel :
- Exécutez la commande suivante pour installer les dépendances Laravel (assurez-vous d’être dans le répertoire de votre projet) :
bash
docker-compose exec app composer install
- Exécutez la commande suivante pour installer les dépendances Laravel (assurez-vous d’être dans le répertoire de votre projet) :
-
Génération de la clé d’application Laravel :
- Exécutez la commande suivante pour générer la clé d’application Laravel :
bash
docker-compose exec app php artisan key:generate
- Exécutez la commande suivante pour générer la clé d’application Laravel :
-
Accès à l’application :
- Ouvrez votre navigateur et accédez à l’URL http://localhost:8080 pour voir votre application Laravel fonctionner.
Cette approche offre plusieurs avantages, notamment l’isolation de l’environnement, la gestion des dépendances via Composer, la configuration centralisée avec Docker Compose, et la facilité de partage du projet avec d’autres développeurs.
En résumé, l’utilisation de Docker Compose avec Laravel simplifie le processus de développement en fournissant un environnement cohérent et isolé, favorisant ainsi la collaboration et la portabilité des applications web modernes.
Plus de connaissances
Continuons notre exploration des détails concernant l’utilisation de Docker Compose avec Laravel. Au-delà des étapes initiales, nous allons approfondir certains aspects spécifiques du processus, notamment la configuration de la base de données, la gestion des migrations et des seeds, ainsi que la mise en place d’une architecture optimale pour un déploiement en production.
Configuration de la Base de Données :
Dans le fichier .env
de votre projet Laravel, configurez les paramètres de base de données en fonction du service que vous avez spécifié dans le fichier docker-compose.yml
. Par exemple, si vous utilisez MySQL, les paramètres peuvent ressembler à ceci :
dotenvDB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=secret
Assurez-vous que les paramètres de base de données correspondent à ceux définis dans le service associé dans le fichier docker-compose.yml
. Dans cet exemple, le service MySQL serait configuré avec le nom d’hôte db
.
Gestion des Migrations et des Seeds :
Pour exécuter les migrations et les seeds dans un environnement Docker, utilisez la commande suivante :
bashdocker-compose exec app php artisan migrate --seed
Cela appliquera les migrations et alimentera la base de données avec des données de test, si vous avez défini des seeds.
Configuration du Service Web Nginx :
Dans le service Nginx du fichier docker-compose.yml
, vous pouvez personnaliser la configuration en montant un fichier de configuration personnalisé depuis votre projet. Par exemple, créez un fichier nginx.conf
dans le répertoire docker
de votre projet et référencez-le dans le service Nginx comme suit :
yamlweb:
image: nginx:latest
ports:
- "8080:80"
volumes:
- .:/var/www/html
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
networks:
- app-network
Déploiement en Production :
Lorsque vous êtes prêt à déployer votre application Laravel en production, quelques ajustements sont nécessaires. Il est recommandé de créer un fichier .env.production
pour stocker les variables d’environnement spécifiques à la production. Assurez-vous de modifier les valeurs en conséquence, notamment pour les paramètres de base de données et les clés d’application.
En production, vous voudrez également remplacer le serveur web intégré par un serveur web plus robuste, tel que Nginx ou Apache. Le fichier Dockerfile
peut être personnalisé pour installer et configurer le serveur web de votre choix.
Gestion des Variables d’Environnement :
L’utilisation de Docker Compose facilite la gestion des variables d’environnement pour votre application Laravel. Dans le fichier docker-compose.yml
, vous pouvez définir des variables d’environnement pour les services, ce qui peut être utile pour spécifier des configurations spécifiques à l’environnement. Par exemple :
yamlapp:
image: php:7.4-fpm
volumes:
- .:/var/www/html
working_dir: /var/www/html
environment:
- APP_ENV=local
- APP_DEBUG=true
- APP_KEY=your-app-key
Sauvegarde des Données de la Base de Données :
Pour sauvegarder les données de votre base de données Docker, vous pouvez utiliser des outils tels que mysqldump
pour MySQL ou pg_dump
pour PostgreSQL. Vous pouvez automatiser ce processus en créant des scripts de sauvegarde et en les planifiant à l’aide d’outils comme cron.
Conclusion :
L’utilisation de Docker Compose avec Laravel offre un environnement de développement puissant et portable. Cela facilite également le déploiement et la gestion des applications en production. Cependant, il est important de comprendre les nuances de cette configuration, en particulier pour les aspects liés à la sécurité, la gestion des données et la performance.
En suivant ces conseils et en explorant davantage la documentation de Docker, Laravel et des autres technologies associées, vous serez bien équipé pour développer, déployer et maintenir des applications web modernes de manière efficace et évolutive.