Mit kleinen Docker-Entwicklungsumgebungen einsatzbereit.
Die vollständige Dokumentation finden Sie unter https://vessel.shippingdocker.com.
Bei Vessel handelt es sich lediglich um einen kleinen Satz Dateien, der pro Projekt eine lokale Docker-basierte Entwicklungsumgebung einrichtet. Es gibt nichts, was global installiert werden muss, außer Docker selbst!
Das ist alles, was Sie brauchen, um es zu verwenden:
Komponist benötigt Schiffshafen/Schiff php artisan seller:publish --provider="VesselVesselServiceProvider"# Führen Sie dies einmal aus, um das Projekt zu initialisieren.# Muss mit „bash“ ausgeführt werden, bis die Bash-Vessel-Initialisierung initialisiert wird ./Schiffsstart
Gehen Sie in Ihrem Browser zu http://localhost
und sehen Sie sich Ihre Laravel-Site an!
Wenn Sie Lumen verwenden, müssen Sie die Vessel-Dateien manuell kopieren, anstatt php artisan vendor:publish
zu verwenden. Sie können dies mit diesem Befehl tun:
cp -R vendor/shipping-docker/vessel/docker-files/{vessel,docker-compose.yml,docker} .
Anschließend können Sie die Installation wie gewohnt durchführen und fortfahren.
Das Schiff versucht, eine Verbindung zu Port 80 und 3306 auf Ihrem Computer herzustellen. Sie können also einfach in Ihrem Browser zu http://localhost
gehen.
Wenn Sie jedoch mehr als eine Instanz von Vessel ausführen, wird beim Starten eine Fehlermeldung angezeigt. Jeder Port kann nur einmal verwendet werden. Um dies zu umgehen, verwenden Sie pro Projekt einen anderen Port, indem Sie die Umgebungsvariablen APP_PORT
und MYSQL_PORT
auf eine von zwei Arten festlegen:
In der .env
Datei:
APP_PORT=8080 MYSQL_PORT=33060
Oder beim Starten des Schiffes:
APP_PORT=8080 MYSQL_PORT=33060 ./vessel start
Anschließend können Sie Ihr Projekt unter http://localhost:8080
anzeigen und lokal über Port 33060
auf Ihre Datenbank zugreifen.
Da wir MySQL an Port 3306
binden, kann SequelPro direkt auf die Datenbank zugreifen.
Das Passwort für den Benutzer root
wird durch die Umgebungsvariable DB_PASSWORD
in der .env
Datei festgelegt.
Die Porteinstellung muss mit der Umgebungsvariablen
MYSQL_PORT
übereinstimmen, die standardmäßig3306
lautet.
Hier ist eine Liste der integrierten Helfer, die Sie verwenden können. Jeder Befehl, der nicht im vessel
definiert ist, wird standardmäßig an den Befehl docker-compose
übergeben. Wenn kein Befehl verwendet wird, wird docker-compose ps
ausgeführt, um die ausgeführten Container für diese Umgebung aufzulisten.
# zeigt die aktuelle Version des Schiffs an $ Vessel --version # oder [ -v | Version ]# zeigt Schiffshilfe$ Schiff --help # oder [ -H | helfen ]
# Starten Sie die Umgebung./vessel start## Dies entspricht./vessel up -d# Stoppen Sie die Umgebung./vessel stop## Dies entspricht./vessel down
# Verwenden Sie „composer./vessel Composer <cmd>./vessel comp <cmd>“ # „comp“ ist eine Abkürzung für „composer“# Verwenden Sie „artisan./vessel artisan <cmd>./vessel art <cmd>“ # „art“ ist eine Verknüpfung zu „artisan“# Führen Sie tinker REPL./vessel tinker aus. # „tinker“ ist eine Verknüpfung für „artisan tinker“# Führen Sie phpunit tests aus./vessel test## Beispiel: Sie können alles bestehen Sie würden auch phpunit dazu verwenden./vessel test --filter=some.phpunit.filter ./vessel test tests/Unit/SpecificTest.php# Führen Sie npm aus./vessel npm <cmd>## Beispiel: install deps./vessel npm install# Führen Sie Yarn./vessel Yarn aus <cmd>## Beispiel: installieren Sie deps./ Vessel Yarn Install# Führen Sie gulp./vessel gulp <cmd> aus
Wie bereits erwähnt, wird alles, was nicht als integrierter Befehl erkannt wird, als Argument für den Befehl docker-compose
verwendet. Hier sind ein paar praktische Tricks:
# Beide werden aktuell laufende Container und deren Status auflisten./vessel ./vessel ps# Protokollausgabe eines Containerdienstes prüfen./vessel logs # alle Containerprotokolle./vessel logs app # nginx | php logs./vessel logs mysql # mysql logs./vessel logs redis # redis logs## Verfolgen Sie die Protokolle, um die Ausgabe zu sehen, während sie generiert wird./vessel logs -f # all logs./vessel logs -f app # nginx | php logs## Tail Laravel Logs./vessel exec app tail -f /var/www/html/storage/logs/laravel.log# Starten Sie eine Bash-Shell in einem Container# Dies ist genau so, als würde man sich per SSH auf einen Server einloggen# Beachten Sie, dass auf diese Weise vorgenommene Änderungen an einem Container **NICHT**# über das Stoppen und Starten der Schiffsumgebung hinaus Bestand haben. Um Software zu installieren oder die Serverkonfiguration zu ändern, müssen Sie die Docker-Datei bearbeiten und Folgendes ausführen: ./vessel build./vessel exec app bash# Beispiel: mysqldump-Datenbank „homestead“ zum lokalen Dateisystem# Wir müssen das Passwort auf diese Weise in der Befehlszeile hinzufügen# Dadurch werden die Dateien „homestead.sql“ in Ihrem lokalen Dateisystem erstellt, nicht# innerhalb von der Container# @link https://serversforhackers.com/c/mysql-in-dev-docker./vessel exec mysql mysqldump -u root -psecret homestead > homestead.sql
Das Ziel dieses Projekts ist Einfachheit. Es beinhaltet:
PHP 7.4
MySQL 5.7
Redis (neueste)
NodeJS (neueste Version), mit Yarn & Gulp
Wenn Sie mit Docker nicht vertraut sind, probieren Sie diesen Kurs „Docker in Development“ aus, in dem wichtige Themen für den Aufbau erklärt werden.
Wenn Sie sehen möchten, wie dieser Workflow entwickelt wurde, schauen Sie sich Shipping Docker an und melden Sie sich für das kostenlose Kursmodul an, das den Aufbau dieses Docker-Workflows erklärt.
Vessel erfordert Docker und funktioniert derzeit nur unter Windows, Mac und Linux.
Windows erfordert die Ausführung von Hyper-V. Die Verwendung von Git Bash (MINGW64) und WSL wird unterstützt. Natives Windows befindet sich noch in der Entwicklung.
Mac | Linux | Windows |
---|---|---|
Installieren Sie Docker auf dem Mac | Installieren Sie Docker unter Debian | Installieren Sie Docker unter Windows |
Installieren Sie Docker auf Ubuntu | ||
Installieren Sie Docker unter CentOS |