Wat is Sail
Laravel Sail is een lichtgewicht command-line interface voor het werken met de Docker-ontwikkelomgeving van Laravel. Je kunt er een Laravel-applicatie met PHP, MySQL en Redis mee opzetten, zonder voorkennis van Docker. Het hart van Sail bestaat uit het bestandcompose.yaml in de projectroot en het sail-script.
Het sail-script biedt handige CLI-methoden om de Docker-containers uit compose.yaml te bedienen.
Laravel Sail werkt op macOS, Linux en Windows (via WSL2).
Sail is een tool die uitsluitend bedoeld is voor lokale ontwikkeling en niet voor productiegebruik.
Zorg voor productie voor een eigen, passende Docker-/cloudconfiguratie.
Installatie
Installeren in een bestaand project
Installeer het pakket met Composer.1
Het Sail-pakket toevoegen
2
Configuratiebestanden publiceren
Voer het Artisan-commando Je kunt interactief services kiezen. Selecteer bijvoorbeeld MySQL, Redis en Mailpit.
sail:install uit.
Dit commando publiceert compose.yaml naar de projectroot en voegt de benodigde omgevingsvariabelen toe aan .env.3
Sail starten
http://localhost.Extra services toevoegen
Om services toe te voegen aan een bestaande Sail-installatie gebruik je het commandosail:add.
Devcontainers gebruiken
Wil je ontwikkelen binnen een Devcontainer, gebruik dan de optie--devcontainer.
Configuratie
Een shell-alias instellen
Standaard moet je telkens./vendor/bin/sail intypen.
Stel je een shell-alias in, dan volstaat het om alleen sail te typen.
~/.zshrc of ~/.bashrc en herstart je shell.
Images opnieuw bouwen
Wil je je pakketten up-to-date houden, bouw dan de images opnieuw.Starten en stoppen
Om alle Docker-containers uitcompose.yaml te starten gebruik je het up-commando.
stop-commando, of druk je op Ctrl + C als de containers op de voorgrond draaien.
Opstartflow
Commando’s uitvoeren
Met Sail draait je applicatie in een Docker-container. PHP-commando’s, Artisan-commando’s, Composer-commando’s en Node/NPM-commando’s voer je allemaal uit viasail.
De commando’s
php artisan, composer en npm die je vaak in de officiële Laravel-documentatie ziet,
voer je in een Sail-omgeving uit met sail ervoor.PHP-commando’s
Composer-commando’s
Artisan-commando’s
Node/NPM-commando’s
Container-CLI (shell)
Je kunt ook rechtstreeks een Bash-sessie in de container openen.Services
Een overzicht van de services die Sail biedt. Je selecteert ze bij de installatie metsail:install.
MySQL
Standaard opgenomen incompose.yaml.
De data wordt bewaard in een Docker Volume. Bij de eerste start worden automatisch twee databases aangemaakt: één voor de app en één voor testing.
Stel DB_HOST in .env in op mysql zodat je app er verbinding mee kan maken.
3306.
Redis
StelREDIS_HOST in .env in op redis zodat je app toegang heeft tot Redis.
Valkey
Wil je Valkey gebruiken als alternatief voor Redis, stel danREDIS_HOST in op valkey.
Mailpit
Vangt e-mails op die tijdens lokale ontwikkeling worden verstuurd en toont ze in een web-UI.http://localhost:8025.
Meilisearch / Typesense
Integreer met Laravel Scout om full-text zoeken uit te proberen.- Meilisearch:
MEILISEARCH_HOST=http://meilisearch:7700 - Typesense:
TYPESENSE_HOST=typesense,TYPESENSE_PORT=8108enzovoort
RustFS (S3-compatibele opslag)
Ben je van plan in productie Amazon S3 te gebruiken, dan kun je lokaal S3-compatibele opslag emuleren.Tests uitvoeren
sail test komt intern overeen met sail artisan test. Er is standaard een aparte testing-database, zodat je ontwikkeldata onaangetast blijft.
Laravel Dusk
Met Sail voer je Dusk-browsertests uit zonder Selenium lokaal te installeren. Verwijder de commentaartekens bij de Selenium-service incompose.yaml.
PHP-/Node-versies
De PHP-versie wijzigen
Wijzig debuild.context van de laravel.test-container in compose.yaml.
Extra PHP-extensies
De runtime-images van Sail bevatten de gangbare PHP-extensies. Heeft je applicatie extra extensies nodig, dan kun je aan delaravel.test-service in compose.yaml het build-argument PHP_EXTENSIONS toevoegen (gescheiden door spaties) zodat ze tijdens het bouwen van het image worden geïnstalleerd.
compose.yaml het containerimage opnieuw.
De Node-versie wijzigen
Je site publiekelijk delen
Voor previews voor collega’s of het testen van webhooks kun je je site tijdelijk publiek toegankelijk maken.laravel-sail.site-URL uitgegeven. Stel in bootstrap/app.php de vertrouwde proxy’s in zodat de URL-generatiehelpers correct werken.
Xdebug
Inschakelen
Publiceer eerst de configuratiebestanden metsail:publish en voeg daarna het volgende toe aan .env.
php.ini-bestand de volgende instelling bevat.
CLI-debugging
Browser-debugging
Voor de stappen om een debugsessie vanuit de browser te starten, zie de officiële Xdebug-documentatie. Gebruik je PhpStorm, dan is de configuratie van Zero-configuration debugging handig.Aanpassen
Om de Dockerfiles en configuratiebestanden van Sail aan te passen publiceer je ze met het commandosail:publish.
docker/.
Bouw na je wijzigingen de containers opnieuw.