Was ist Sail
Laravel Sail ist ein schlankes Kommandozeilen-Interface, um die Docker-Entwicklungsumgebung von Laravel zu bedienen. Sie bauen damit eine Laravel-Anwendung mit PHP, MySQL und Redis auf – auch ohne Docker-Vorkenntnisse. Kern von Sail sind die Dateicompose.yaml im Projekt-Root und das Skript sail.
Das sail-Skript bietet praktische CLI-Methoden zur Steuerung der in compose.yaml definierten Container.
Laravel Sail läuft unter macOS, Linux und Windows (über WSL2).
Sail ist ein Werkzeug für die lokale Entwicklung. Der Produktivbetrieb ist damit nicht vorgesehen.
Für die Produktion sollten Sie eine eigene Docker-/Cloud-Konfiguration einrichten.
Installation
In ein bestehendes Projekt
Installieren Sie das Paket mit Composer.Konfigurationsdateien veröffentlichen
Führen Sie den Artisan-Befehl Sie können interaktiv Dienste auswählen (MySQL, Redis, Mailpit usw.).
sail:install aus.
Er legt compose.yaml im Projekt-Root an und ergänzt in der .env die notwendigen Umgebungsvariablen.Weitere Dienste hinzufügen
Um einer bestehenden Sail-Installation weitere Dienste hinzuzufügen, nutzen Siesail:add.
Devcontainer nutzen
Um in einem Devcontainer zu arbeiten, verwenden Sie die Option--devcontainer.
Konfiguration
Shell-Alias einrichten
Standardmäßig müssen Sie jedes Mal./vendor/bin/sail schreiben.
Ein Alias erlaubt schlicht sail.
~/.zshrc oder ~/.bashrc und starten Sie die Shell neu.
Images neu bauen
Wenn Sie Pakete aktuell halten möchten, bauen Sie die Images neu.Start und Stopp
Um alle incompose.yaml definierten Container zu starten, verwenden Sie up.
stop; im Vordergrund mit Strg + C.
Ablauf beim Start
Kommandos ausführen
Mit Sail läuft die Anwendung in einem Docker-Container. PHP-, Artisan-, Composer- und Node/NPM-Kommandos rufen Sie alle übersail auf.
Die in der Doku üblichen Befehle
php artisan, composer, npm führen Sie in Sail-Umgebungen mit vorangestelltem sail aus.PHP
Composer
Artisan
Node / NPM
Container-CLI (Shell)
Sie können auch direkt eine Bash-Session im Container öffnen.Dienste
Ein Überblick über die von Sail bereitgestellten Dienste, die Sie beisail:install auswählen können.
MySQL
Standardmäßig incompose.yaml enthalten.
Daten werden über ein Docker-Volume persistiert. Beim ersten Start werden zwei Datenbanken angelegt: eine für die Anwendung und eine testing-Datenbank.
Setzen Sie in der .env DB_HOST auf mysql.
3306.
Redis
Setzen SieREDIS_HOST auf redis.
Valkey
Um als Redis-Alternative Valkey zu verwenden, setzen SieREDIS_HOST auf valkey.
Mailpit
Fängt lokal versendete E-Mails ab und zeigt sie in einer Web-UI an.http://localhost:8025 erreichbar.
Meilisearch / Typesense
Zusammen mit Laravel Scout testen Sie damit die Volltextsuche.- Meilisearch:
MEILISEARCH_HOST=http://meilisearch:7700 - Typesense:
TYPESENSE_HOST=typesense,TYPESENSE_PORT=8108usw.
RustFS (S3-kompatibler Storage)
Wenn Sie in Produktion Amazon S3 verwenden wollen, können Sie lokal einen S3-kompatiblen Storage emulieren.Tests ausführen
sail test entspricht intern sail artisan test. Die eigene Datenbank testing bleibt vom Entwicklungsstand unberührt.
Laravel Dusk
Mit Sail können Sie Dusk-Browsertests ausführen, ohne Selenium lokal zu installieren. Kommentieren Sie den Selenium-Dienst incompose.yaml aus:
PHP- und Node-Versionen
PHP-Version wechseln
Ändern Sie incompose.yaml den build.context des Containers laravel.test.
Zusätzliche PHP-Erweiterungen
Die Sail-Runtime enthält gängige PHP-Erweiterungen. Wenn Ihre Anwendung zusätzliche benötigt, ergänzen Sie incompose.yaml beim Service laravel.test das Build-Argument PHP_EXTENSIONS (Leerzeichen-getrennt), sodass sie beim Build installiert werden.
Node-Version wechseln
Site öffentlich teilen
Zum Kollegen-Preview oder für Webhook-Tests können Sie Ihre Site temporär öffentlich zugänglich machen.laravel-sail.site. Damit URL-Generierungshelfer korrekt funktionieren, setzen Sie in bootstrap/app.php einen Trusted Proxy:
Xdebug
Aktivieren
Veröffentlichen Sie zunächst die Konfigurationsdateien mitsail:publish und ergänzen Sie in der .env:
php.ini folgende Zeilen enthält.
CLI-Debugging
Browser-Debugging
Für den Ablauf, eine Debug-Session vom Browser aus zu starten, lesen Sie die Xdebug-Dokumentation. Nutzer von PhpStorm profitieren von Zero-configuration debugging.Anpassen
Zum Anpassen der Dockerfiles und Konfigurationen veröffentlichen Sie die Dateien mitsail:publish.
docker/.
Nach Änderungen bauen Sie die Container neu:
Unterschiede zur Produktion
Wesentliche Unterschiede zusammengefasst:| Punkt | Sail (lokal) | Produktion |
|---|---|---|
| Zweck | Entwicklung, Debugging | Betrieb |
| Xdebug | Aktivierbar | Deaktiviert empfohlen |
| Mailpit | Fängt Mails ab und zeigt sie | Echter Mailserver |
| Datenpersistenz | Docker-Volume | Managed DB o. Ä. |
| Performance | Nicht optimiert | Erforderlich zu optimieren |