Laravel 11 : Installation d’un Projet avec Docker en utilisant Laravel Sail

Introduction

Dans ce tutoriel, nous allons apprendre à installer et configurer un nouveau projet Laravel en utilisant Docker et Laravel Sail. Nous allons couvrir les étapes nécessaires pour mettre en place un environnement de développement complet et fonctionnel, incluant la configuration de Docker, la création d’un projet Laravel, et l’utilisation de Laravel Sail pour gérer et exécuter votre application. Suivez ces étapes pour démarrer rapidement et efficacement avec Laravel et Docker. Vous découvrirez comment Laravel Sail peut simplifier votre flux de travail de développement en fournissant un environnement de développement cohérent et préconfiguré.

Prérequis

  • Avoir Docker et Docker Compose installés sur votre machine.
  • Avoir un accès à internet pour télécharger les dépendances nécessaires.

Créer un Nouveau Projet Laravel

Démarrez Docker, puis ouvrez votre terminal.

Utilisez la commande suivante pour créer un nouveau projet Laravel avec Laravel Sail :

curl -s "https://laravel.build/myapi" | bash

Cette commande téléchargera et installera Laravel et Laravel Sail dans un nouveau répertoire nommé myapi.

Démarrer les Conteneurs Docker

Naviguez dans le répertoire de votre projet :

cd myapi

Démarrez les conteneurs Docker en utilisant Laravel Sail :

./vendor/bin/sail up -d

Lorsque vous êtes invité à entrer un mot de passe, utilisez celui que vous utilisez pour vous connecter à votre compte utilisateur sur votre ordinateur. Il s’agit du même mot de passe que vous utilisez pour déverrouiller votre ordinateur ou pour vous connecter à votre session utilisateur

Configurer Laravel Sail

Arrêtez les conteneurs Sail pour effectuer des modifications :

./vendor/bin/sail down

Ajoutez PostgreSQL à votre environnement Sail :

php artisan sail:add

Lors de l’exécution de cette commande, vous serez invité à sélectionner les services à ajouter. Par défaut, mysql est sélectionné. Suivez ces étapes pour sélectionner pgsql à la place :

  • Désélectionnez Mysql en utilisant les touches fléchées pour naviguer jusqu’à mysql et appuyez sur ESPACE pour désélectionner MySQL.
  • Sélectionnez PostgreSQL en utilisant les touches fléchées pour naviguer jusqu’à pgsql et appuyez sur ESPACE pour sélectionner PostgreSQL.
  • Appuyez sur Entrée pour valider votre sélection et continuer l’installation.

Modifiez le fichier .env pour utiliser PostgreSQL a la racine de votre projet :

DB_CONNECTION=pgsql
DB_HOST=pgsql
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password

Ajoutons Adminer pour gérer PostgreSQL

Adminer est un outil léger et puissant pour gérer les bases de données via une interface web. Il est similaire à phpMyAdmin pour une base de données MySQL mais offre une prise en charge plus large des bases de données, y compris PostgreSQL. Voici les étapes détaillées pour ajouter Adminer à votre fichier docker-compose.yml

Étape 1 : Ajouter Adminer à Docker Compose

Vous avez déjà ajouté le service Adminer dans votre fichier docker-compose.yml :

adminer:
    image: adminer
    restart: always
    ports:
        - 8080:8080
    networks:
        - sail

Cela configure Adminer pour être accessible sur le port 8080 de votre machine locale.

Démarrer les Conteneurs Docker avec PostgreSQL

./vendor/bin/sail up -d

Exécuter les Migrations de la Base de Données

Les migrations dans Laravel sont essentielles pour configurer la structure de votre base de données. Elles créent et mettent à jour les tables nécessaires pour que votre application fonctionne correctement.

Dans cette section, nous verrons comment exécuter les migrations pour que votre base de données soit correctement configurée.

./vendor/bin/sail artisan migrate

Avant de démarrer Sail, assurez-vous qu’aucun autre serveur web ou base de données ne fonctionne sur votre ordinateur local. Cela évite les conflits de ports et garantit que Sail peut utiliser les ressources nécessaires.

Accès à l’Application

Une fois que les conteneurs de l’application ont été démarrés, vous pouvez accéder au projet dans votre navigateur web à l’adresse suivante :

http://localhost/

Cette adresse ouvre la page d’accueil de votre application Laravel, indiquant que le serveur web et les autres services nécessaires sont opérationnels.

Ajouter Sail à Votre Alias de Commande (Optionnel)

Pour simplifier l’utilisation de Sail, vous pouvez ajouter un alias à votre shell afin de ne pas avoir à taper ./vendor/bin/sail à chaque fois.

Pour Mac et Linux

Selon le shell que vous utilisez, ouvrez le fichier de configuration correspondant :

Pour Bash (.bashrc) :

nano ~/.bashrc

Pour Zsh (.zshrc) :

nano ~/.zshrc

Ajouter l’Alias :

Ajoutez la ligne suivante à la fin du fichier pour créer un alias pour Laravel Sail :

alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'

Pour Windows

Si vous utilisez un terminal compatible avec les scripts de shell comme Git Bash, WSL (Windows Subsystem for Linux), ou Cygwin :

Ouvrez le fichier de configuration de votre shell :

  • Pour Git Bash et Cygwin (.bashrc) :
nano ~/.bashrc
  • Pour WSL (.bashrc ou .zshrc selon le shell que vous utilisez) :
nano ~/.bashrc
# ou
nano ~/.zshrc

Ajoutez l’alias à la fin du fichier :

alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'

Enregistrez et fermez le fichier :

  • Appuyez sur Ctrl + X pour quitter.
  • Appuyez sur Y pour confirmer l’enregistrement.
  • Appuyez sur Entrée pour valider le nom du fichier.

Rechargez votre fichier de configuration de shell :

source ~/.bashrc
# ou
source ~/.zshrc

Maintenant, vous pouvez utiliser sail directement dans votre terminal :

sail up 

Démarrage et Arrêt de Sail

Laravel Sail facilite la gestion de votre environnement de développement en utilisant Docker. Voici comment démarrer et arrêter facilement vos conteneurs Docker avec Sail.

Démarrage des Conteneurs Docker

Pour démarrer tous les conteneurs Docker définis dans le fichier docker-compose.yml de votre application, exécutez la commande suivante :

sail up

Cette commande démarre l’application et tous les services associés (comme la base de données) en utilisant Docker.

Démarrage en Mode Détaché

Pour démarrer tous les conteneurs Docker en arrière-plan (mode “détaché”), utilisez la commande suivante :

sail up -d

En mode détaché, les conteneurs continueront à fonctionner en arrière-plan, vous permettant de fermer votre terminal ou d’exécuter d’autres commandes sans interrompre l’exécution des conteneurs.

Gérer la base de données

Une fois que tout est en place, vous pouvez accéder à Adminer via votre navigateur web :

  • Ouvrez votre navigateur.
  • Accédez à Adminer à l’adresse suivante :
http://localhost:8080

Se Connecter à la Base de Données PostgreSQL

  • Sélectionnez le type de base de données : Choisissez PostgreSQL dans le menu déroulant.
  • Entrez les informations de connexion :
    • Serveur : pgsql (ou localhost si vous êtes à l’extérieur de Docker)
    • Nom d’utilisateur : sail (ou la valeur de DB_USERNAME dans votre fichier .env)
    • Mot de passe : password (ou la valeur de DB_PASSWORD dans votre fichier .env)
    • Base de données : laravel (ou la valeur de DB_DATABASE dans votre fichier .env)
  • Cliquez sur “Connecter” pour accéder à la base de données.

Arrêter les Conteneurs Docker

Pour arrêter tous les conteneurs, appuyez simplement sur Control + C dans le terminal où Sail est en cours d’exécution. Cela arrêtera tous les conteneurs en cours d’exécution.

Si les conteneurs fonctionnent en arrière-plan (mode détaché), utilisez la commande suivante pour les arrêter :

sail stop

Conclusion

Ce tutoriel nous a guidés à travers la configuration d’un projet Laravel avec Docker et Laravel Sail, en intégrant PostgreSQL comme base de données. Nous avons appris à créer et configurer notre projet, à démarrer et arrêter les conteneurs Docker, à vérifier et créer la base de données, et à exécuter les migrations pour préparer la structure de la base de données. Nous avons également simplifié l’utilisation de Sail en ajoutant un alias. Avec cette configuration, nous disposons d’un environnement de développement Laravel robuste et prêt à l’emploi.

Développeuse web full-stack * Plus de publications

Développeuse Fullstack passionnée par le code, je suis diplômée en Programmation/Développement informatique de Sup’Info. Maîtrisant des langages comme PHP, JAVA et C++, je m’adapte facilement à différents environnements techniques. Mon parcours m'a permis de travailler sur une variété de projets, allant du développement Web et mobile à la création d'API et d'applications monétiques pour TPE. J'ai également une bonne connaissance de frameworks tels que Laravel, Tailwind CSS, Spring Boot et React Native.

Contributeurs

5 1 vote
Évaluation de l'article
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Ingénierie informatique (SSII)

Applize crée des logiciels métiers pour accompagner les entreprises dans la transition vers le zéro papier.


Avez-vous un projet en tête ? Discutons-en.