Laravel Sail, un environnement de développement pour Laravel à l'aide de Docker, s'appuie fortement sur des variables d'environnement définies principalement dans le fichier «.env» à la racine du projet. Ces variables d'environnement configurent l'application et ses services, permettant une orchestration transparente des conteneurs et un réglage des paramètres adaptés au développement local.
Les variables d'environnement communes utilisées dans Laravel Sail peuvent être regroupées en fonction de leur objectif: configuration de l'application, configuration de la base de données, ports de service et liaisons, paramètres des utilisateurs de conteneurs et personnalisations spécifiques à la voile.
Variables de configuration de l'application
- `app_name`: définit le nom de l'application Laravel.
- `app_env`: définit le type d'environnement, généralement« local »pour la voile.
- `APP_KEY`: une clé de cryptage codée de base64 utilisée par Laravel pour le chiffrement et la sécurité de session.
- `app_debug`: un drapeau booléen pour activer les messages d'erreur détaillés et les fonctionnalités de débogage (« true »ou` faux »).
- `app_url`: l'URL où l'application est accessible localement, souvent définie sur` http: // localhost`.
Variables de connexion de la base de données
Pour orchestrer le conteneur de la base de données (service `mysql`), Sail utilise des variables qui définissent la connexion au conteneur de la base de données MySQL:
- `db_connection`: indique le pilote de base de données, généralement` mysql`.
- `db_host`: nom d'hôte pour le serveur de base de données, généralement le nom du conteneur mysql, tel que` mysql`.
- `db_port`: port par défaut pour la connectivité MySQL, généralement` 3306`.
- `db_database`: le nom de la base de données utilisé à l'intérieur du conteneur.
- `db_username`: nom d'utilisateur pour accéder à la base de données.
- `db_password`: mot de passe pour l'utilisateur de la base de données.
redis
Sail prend en charge Reded pour la mise en cache ou la manipulation de session. Ces variables configurent la connectivité Redis:
- `redis_host`: nom d'hôte pour le serveur redis, souvent` redis` pour correspondre au conteneur redis.
- `redis_password`: mot de passe pour redis, le cas échéant.
- `redis_port`: Port redis écoute, souvent` 6379`.
Variables de transfert de port de service
Pour éviter les conflits avec des services déjà exécutés sur des ports communs sur le système hôte, SALIA permet la personnalisation de ports transmis pour ses services:
- `Forward_db_port`: port de machine local transféré au port standard de MySQL 3306 dans le conteneur (par exemple, vous pouvez le définir si le port 3306 est occupé).
- `Forward_redis_port`: Port local transmis au port par défaut Redis 6379.
- `usine_mailhog_port`: port local transmis au port de service MailHog, généralement utilisé pour les tests par e-mail.
- D'autres variables `Forward_ * 'existent pour des services tels que PhpMyAdmin ou d'autres services de voile s'ils sont configurés.
Variables de l'utilisateur et des autorisations de conteneur
Sail exécute des conteneurs à l'aide d'un utilisateur qui correspond à l'utilisateur hôte local pour s'assurer que les autorisations de fichier restent cohérentes entre l'hôte et le conteneur. Ces variables contrôlent les ID utilisateur:
- `wwwuser`: définit l'ID utilisateur à l'intérieur du conteneur qui correspond à l'ID utilisateur de la machine hôte, garantissant que les autorisations de fichier correspondent.
- `wwwgroup`: définit l'ID de groupe à l'intérieur du conteneur pour correspondre à l'hôte.
Variables de personnalisation de la voile
- `app_service`: permet de modifier le nom de conteneur du service d'application Laravel primaire à l'intérieur du` docker-compose.yml`. Cela peut être utile pour les configurations avancées.
- `SAIL_FILES`: vous permet de spécifier des fichiers de remplacement docker de composition supplémentaires à charger aux côtés des fichiers de voile standard. Il s'agit de personnaliser ou d'étendre l'environnement de voile.
- `supervisor_php_command`: utilisé pour personnaliser la commande de démarrage PHP à l'intérieur du principal conteneur de voile Laravel, utile lors de l'intégration d'outils comme Laravel Octane.
- `supervisor_php_user`: définit l'utilisateur qui exécute PHP dans le processus de superviseur à l'intérieur du conteneur.
Variables de service de messagerie
Laravel Sail est livré avec un conteneur Mailhog pour capturer des e-mails envoyés pendant le développement. Ces variables configurent les paramètres du courrier:
- `Mail_mailer`: réglé sur` smtp` ou un autre pilote de mailer.
- `mail_host`: nom d'hôte pour le serveur de messagerie, généralement` MailHog`.
- `Mail_port`: port pour SMTP, généralement` 1025` pour MailHog.
- `Mail_Username` et` Mail_password`: Informations d'identification si nécessaire (en blanc généralement laissé en développement).
pilotes de file d'attente et de cache
La valeur par défaut de Sail `.env` peut les définir:
- `queue_connection`: définit le pilote de file d'attente, comme` sync`, `base de données` ou` redis`.
- `cache_driver`: détermine le pilote de cache, souvent` `file` ou` redis`.
Autres variables d'environnement de service
- `xdebug_config`: configuré automatiquement par voile pour déboguer avec xdebug, définissant souvent` client_host = host.docker.internal` pour mac et windows.
- `puid` et` pgid`: parfois vu dans les configurations de voile personnalisées pour définir explicitement les ID utilisateur et le groupe pour la correspondance de la permission de l'utilisateur.
Résumé des rôles variables de l'environnement en voile
Ces variables d'environnement, principalement définies dans le fichier «.env», servent à:
- Configurer les bases de l'application Laravel (nom, environnement, mode de débogage, URL).
- Connectez le conteneur de l'application Laravel à sa base de données et ses services de cache à Docker.
- Carte les ports du conteneur à la machine hôte, en évitant les conflits de port locaux.
- Assurer les autorisations utilisateur et de groupe appropriées entre les systèmes hôtes et conteneurs.
- Personnalisez les conteneurs et processus Laravel Sail Environment pour une utilisation avancée.
Les variables d'environnement de fichiers `.env` contrôlent directement le comportement des conteneurs définis dans` docker-compose.yml` de SAIL et tous les fichiers de composition étendus indiqués par `Sail_files`. L'ajustement de ces variables et le redémarrage de la voile (en utilisant des commandes telles que `./vendor/bin/sail down` et` ./vendor/bin/sail up -d`) applique les modifications de configuration.
Cette configuration permet à Laravel Sail de fournir un environnement de développement local isolé, mais configurable, à l'aide de Docker, en reflétant le comportement de production, tout en étant pratique tout en maintenant la commodité et la flexibilité des développeurs.