Laravel Sail, vývojové prostředí pro Laravel pomocí Docker, se silně spoléhá na proměnné prostředí definované primárně v souboru `.env` v kořeni projektu. Tyto proměnné prostředí nakonfigurují aplikaci a její služby a umožňují bezproblémovou orchestraci kontejnerů a ladění nastavení vhodné pro místní rozvoj.
Společné proměnné prostředí použité v Laravel Sail mohou být seskupeny podle jejich účelu: konfigurace aplikace, konfigurace databáze, servisní porty a vazby, nastavení uživatelů kontejnerů a přizpůsobení specifické pro plachtě.
Proměnné konfigurace aplikací
- `app_name`: Definuje název aplikace Laravel.
- `app_env`: Nastaví typ prostředí, obvykle„ místní “pro plachtu.
- `app_key`: Šifrovací klíč kódovaný Base64 používaný Laravelem pro šifrování a zabezpečení relace.
- `app_debug`: booleovská příznak, která povolí podrobné chybové zprávy a funkce ladění (` true` nebo `false`).
- `app_url`: URL, kde je aplikace přístupná lokálně, často nastavena na` http: // localhost`.
Proměnné připojení databáze
Pro orchestraci kontejneru databáze (služba „mysql`) používá plachtění proměnné, které definují připojení k kontejneru databáze MySQL:
- `db_connection`: označuje ovladač databáze, obvykle` mysql`.
- `db_host`: Název hostitele pro databázový server, obvykle název kontejneru MySQL, jako je` mysql`.
- `db_port`: Výchozí port pro připojení MySQL, obvykle` 3306`.
- `DB_Database`: Název databáze použité uvnitř kontejneru.
- `db_username`: Uživatelské jméno pro přístup k databázi.
- `db_password`: heslo pro uživatele databáze.
Redis Konfigurace
Sail volitelně podporuje Redis pro ukládání do mezipaměti nebo zpracování relací. Tyto proměnné konfigurují připojení redis:
- `redis_host`: název hostitele pro server Redis, často` redis`, aby odpovídal kontejneru Redis.
- `redis_password`: heslo pro redis, pokud existuje.
- `Redis_Port`: Port Redis poslouchá, často` 6379`.
Proměnné pro předávání portů servisního portu
Aby se zabránilo konfliktům se službami, které již běží na běžných portech v hostitelském systému, umožňuje plachta přizpůsobení přeposlaných portů pro své služby:
- `Forward_DB_PORT`: Port místního stroje předán na standardní port 3306 MySQL v kontejneru (např. Můžete to nastavit, pokud je port 3306 obsazen).
- `Forward_redis_Port`: Místní port předán na výchozí port Redis 6379.
- `Forward_mailHog_Port`: Místní port předán do poštovní služby, obvykle používaný pro e -mailové testování.
- Jiné `Forward_*` proměnné existují pro služby, jako je PhpMyAdmin nebo jiné plachetní služby, pokud jsou nakonfigurovány.
Proměnné kontejneru a oprávnění
Sail provozuje kontejnery pomocí uživatele, který odpovídá místnímu hostitelskému uživateli, aby se zajistilo, že oprávnění souboru zůstávají konzistentní mezi hostitelem a kontejnerem. Tyto proměnné řídí ID uživatele:
- `wwwuser`: Nastaví ID uživatele uvnitř kontejneru, který odpovídá ID uživatele hostitelského počítače a zajišťuje shodu o povolení k souboru.
- `wwwgroup`: Nastaví ID skupiny uvnitř kontejneru tak, aby odpovídalo hostiteli.
Proměnné přizpůsobení plachty
- `app_service`: Umožňuje změnit název primárního názvu kontejneru aplikace Laravel Application uvnitř` Docker-compose.yml`. To může být užitečné pro pokročilé konfigurace.
- `Sail_Files`: Umožňuje zadat další soubory přepsání Docker, které mají být načteny podél standardních souborů plachty. To je pro přizpůsobení nebo prodloužení prostředí plachty.
- `supervisor_php_command`: Používá se k přizpůsobení příkazu spuštění PHP uvnitř hlavního kontejneru Laravel Sail, které je užitečné při integraci nástrojů, jako je Laravel Octane.
- `supervisor_php_user`: Nastaví uživatele, který provozuje PHP v procesu supervizoru uvnitř kontejneru.
Proměnné poštovní služby
Laravel Sail je dodáván s kontejnerem Mailhog pro zachycení e -mailů zaslaných během vývoje. Tyto proměnné konfigurují nastavení pošty:
- `Mail_mailer`: Nastavte se na` smtp` nebo jiného řidiče poštovních zásilek.
- `Mail_Host`: Název hostitele pro poštovní server, obvykle` MailHog`.
- `Mail_Port`: Port pro SMTP, obvykle` 1025` pro MailHog.
- `Mail_Username` a` Mail_Password`: V případě potřeby přihlašovací údaje (běžně ponecháno prázdné ve vývoji).
Ovladače fronty a mezipaměti
Výchozí nastavení Sail's Default `.env` je může nastavit:
- `queue_connection`: Definuje ovladač fronty, jako je` synchronizace, „databáze“ nebo `redis`.
- `Cache_Driver`: Určuje ovladač mezipaměti, často` file` nebo `redis`.
Ostatní proměnné prostředí pro servisní prostředí
- `xdebug_config`: Nakonfigurováno automaticky plachtou pro ladění pomocí XDEBUG, často nastavení` client_host = host.docker.internal` pro Mac a Windows.
- `puid` a` pGid`: Občas viděno v konfiguracích vlastních plachty pro výslovně nastavení ID uživatele a skupiny pro porovnávání permise uživatele.
Shrnutí proměnných environmentů v plachtě
Tyto proměnné prostředí, většinou definované v souboru `.env`, slouží:
- Nakonfigurujte základny aplikace Laravel Application (název, prostředí, režim ladění, URL).
- Připojte kontejner aplikace Laravel k jeho databázi a mezipaměťové služby uvnitř Docker.
- Map porty z kontejneru do hostitelského počítače a vyhýbání se konfliktům místních portů.
- Zajistěte správná oprávnění uživatele a skupiny mezi hostitelskými a kontejnerovými systémy.
- Přizpůsobte si kontejnery a procesy prostředí Laravel Sail pro pokročilé použití.
Proměnné prostředí „Env“ přímo řídí chování kontejnerů definovaných v Sail's `Docker-Compose.yml` a jakékoli rozšířené soubory pro kompose označené` sail_files “. Úpravy těchto proměnných a restartování plachty (pomocí příkazů jako `./Vendor/bin/sail Down` a` ./vendor/bin/sail up -d`) použije změny konfigurace.
Toto nastavení umožňuje Laravel Sail poskytovat izolované, ale konfigurovatelné prostředí místního vývoje pomocí Docker, zrcadlení výrobního chování, kdekoli je praktické při zachování pohodlí a flexibility vývojáře.