Anleitungen im Zusammenhang mit Local Beach

Wie du Local Beach für die Docker-basierte Neos Entwicklung auf deinem Computer einrichtest

In diesem Leitfaden wird erklärt, wie du eine lokale Docker-basierte Entwicklungsumgebung für ein beliebiges Flow- oder Neos -Projekt zum Laufen bringen kannst.

Übersicht

"Local Beach" ist eine Entwicklungsumgebung, die es einfach macht, die Beach Docker-Images (Nginx, PHP, Redis) als lokale Entwicklungsumgebung für jedes Neos oder Flow-Projekt zu nutzen. Du brauchst kein Beach Konto und musst auch kein Flownative Kunde sein, um Local Beach zu nutzen. Und klar, Local Beach ist kostenlos (wie Freibier oder Gratiskaffee).

Hinweis: Wir würden uns über dein Feedback freuen! Wie hat es bei dir geklappt? Ist irgendetwas schief gelaufen? Hast du eine Frage oder eine Idee für zusätzliche Funktionen? Schreib uns einfach eine E-Mail an team@flownative.com oder nutze den Chat auf unserer Website.

Systemvoraussetzungen

Möglicherweise kannst du Local Beach auch in anderen Umgebungen nutzen, aber diese Anleitung geht davon aus, dass du die folgende Software installiert hast:

Vergewissere dich, dass du keinen anderen Webserver auf Port 80 oder eine Datenbank auf Port 3307 laufen hast (das ist ein Nicht-Standard-Port).

Installation der lokalen Beach CLI

Installiere Beach CLI, indem du die folgenden Befehle (mit Homebrew) ausführst:

$ brew tap flownative/flownative
$ brew install localbeach
$ beach version

Tipp: Aktualisiere dein lokalesbeach regelmäßig, denn wir führen regelmäßig Bugfixes und neue Funktionen ein. Du kannst dies tun, indem du ausführst:

$ brew upgrade localbeach

Verwendung von Local Beach für die Entwicklung

Local Beach bietet einen Reverse Proxy und einen Datenbankserver (der in Docker läuft) für alle deine lokalen Projekte. Diese werden von allen Projekten gemeinsam genutzt.

Dann wird für jedes Projekt, das du lokal entwickelst, eine Reihe von Docker-Containern ausgeführt. Sie nutzen dieselben PHP-, Nginx- und Redis-Images, die wir für das Hosting deines Beach Projekts in der Cloud verwenden. Die Einrichtung von Local Beach für ein bestehendes Neos oder Flow Projekt besteht aus folgenden Schritten:

  • erstelle das Projekt und installiere die Pakete mit dem Composer (z.B. durch Ausführen von composer install)
  • initialisiere ein Local Beach Setup für dein Projekt
  • starte die Container
  • vorhandene Inhalte importieren

Der erste Schritt hängt davon ab, wie du normalerweise arbeitest. Erstelle ein Projekt von Grund auf oder klone ein bestehendes Repository, Hauptsache, es ist ein Composer-basiertes : Es muss ein Composer-basiertes Neos oder Flow-Projekt sein. Führe dann die Composer-Installation aus, bevor du fortfährst. Wenn du keine PHP- und/oder Composer-Binärdateien auf deinem Rechner hast oder die PHP-Version, die du hast, nicht mit der PHP-Version übereinstimmt, die du mit Local Beach verwenden (willst), dann sieh dir How to work with Composer in Local Beach an.

Projekt initialisieren

Wechsle in einem Terminalfenster in das Hauptverzeichnis deines Neos oder Flow-Projekts und initialisiere die Konfiguration von Local Beach. Beachte, dass der Projektname auf deinem lokalen Computer eindeutig sein muss und mit dem DNS kompatibel sein muss: Verwende nur Buchstaben (a-z), Zahlen (0-9) und Bindestriche (-).

$ cd ~/MyProjects/www.neos.io/
$ beach init --project-name wwwneosio

Wenn du nur die Fehlermeldung erhältst, dass du die Flow- oder Neos -Installation nicht in deinem aktuellen Pfad finden konntest, hast du noch nicht composer install ausgeführt, um dein Projekt einzurichten. Tu das und versuche es erneut.

Du kannst die erzeugte .localbeach.dist.env-Datei bearbeiten und angeben, welche PHP-Version du verwenden möchtest oder zusätzliche Hostnamen für Projekte mit mehreren Standorten einrichten.

Die beiden erzeugten Dateien (.localbeach.dist.env und .localbeach.docker-compose.yaml) können in die Versionskontrolle eingecheckt werden. Wenn du Umgebungsvariablen für jeden einzelnen Rechner benötigst, kannst du diese in einer .localbeach.env oder .env Datei für jeden einzelnen Entwickler festlegen.

Container starten

Du kannst die Container nun mit starten und die Log-Ausgaben der Container verfolgen, um zu sehen, wann sie bereit sind. Der PHP-Container wird die Dateien deines Projekts in den Container kopieren. Das kann einen Moment dauern, also mach dir keine Sorgen, wenn du die Fehlermeldung"Connection closed by remote host" erhältst, wenn du versuchst, dich mit SSH zu verbinden. Wenn du die Log-Ausgabe des PHP-Containers verfolgst, siehst du die Meldung "ready to handle connections", wenn der Container bereit ist.

$ beach start
INFO You are all set
INFO When files have been synced, you can access this instance at http://wwwneosio.localbeach.net

Versuche, über einen Browser mit der URL Local Beach auf dein Projekt zuzugreifen (http://wwwneosio.localbeach.net im obigen Beispiel). Wenn es sich bei deinem Projekt um eine Neos Website handelt, wird wahrscheinlich noch kein Inhalt zu sehen sein, vielleicht siehst du sogar einen Neos Datenbankfehler. Das ist in Ordnung - importieren wir einfach den Inhalt in den nächsten Schritten.

Du kannst auf das Projekt Local Beach zugreifen, um ./flow-Befehle auszuführen, zum Beispiel um den Cache zu leeren:

$ beach exec

          Flownative Local Beach

          wwwneosio

beach@714cab3ae9cd:/application$ ./flow
Neos dev ("Development/Beach/Instance" context)
usage: ./flow <command identifier>

See "./flow help" for a list of all available commands.

Vorhandene Inhalte importieren

  • du kannst mit einem Tool deiner Wahl über 127.0.0.1 auf Port 3307 mit dem Benutzer"root" und dem Passwort "password" auf deine Datenbank zugreifen
  • das Verzeichnis Data/Persistent auf deinem lokalen Rechner wird automatisch mit dem Verzeichnis in deinem Container verbunden; kopiere also einfach alle Daten in dieses Verzeichnis
  • du kannst deine persistenten Daten auch von einer Beach Instanz importieren, indem du beach resource-download --instance <Deine-Instanz-Id> --namespace <Dein-Namensraum> verwendest

An dem Code arbeiten

Da das Stammverzeichnis deines Projekts innerhalb des Containers gemountet ist (unter /application), kannst du mit deinem Lieblingseditor oder deiner Lieblings-IDE am Code auf deinem Host arbeiten. Du musst nicht synchronisieren oder einen Kopier-Workflow im Container einrichten.

Nach Code-Änderungen werden diese von Flow & Neos wie erwartet übernommen - es sei denn, du hast den Standard-Basiskontext von Entwicklung auf Produktion geändert.

Stoppen deiner lokalen Beach Instanz

Wenn du viele Projekte gleichzeitig laufen hast, kann dein Computer etwas langsam werden. Stoppe einfach die Projekte, die du im Moment nicht brauchst, indem du diesen Befehl verwendest:

$ beach stop

Wenn du alle laufenden Instanzen sowie die gemeinsame Datenbank und den nginx-Container stoppen möchtest, kannst du

$ beach down

Weitere Befehle

Es gibt noch mehr Befehle, die in diesem Dokument nicht erwähnt werden. Du kannst sie mit Hilfe der integrierten Hilfe erkunden. Lies unbedingt den Hilfetext, damit du weißt, was dich erwartet, wenn du einen Befehl ausführst!

$ beach
beach is the tool for managing projects in Beach and Local Beach.

Usage:
  beach [command]

Available Commands:
  down              Stop instances, reverse proxy and database server and remove containers
  exec              Execute a command in or enter a Local Beach container
  help              Help about any command
  init              initialize a Local Beach instance in the current directory
  logs              Display logs of the Local Beach instance container
  pause             Temporarily stop the reverse proxy and database server
  resource-download Download resources (assets) from a local Flow or Neos installation to Beach
  resource-upload   Upload resources (assets) from a local Flow or Neos installation to Beach
  restart           restart the Local Beach instance in the current directory
  resume            Resume the temporarily paused reverse proxy and database server
  setup             Setup Local Beach on this computer
  setup-https       Setup HTTPS for Local Beach projects
  start             Start the Local Beach instance in the current directory
  status            Display the status of the Local Beach instance containers
  stop              Stop the Local Beach instance in the current directory
  version           Print the version number of Beach

Flags:
  -h, --help   help for beach

Use "beach [command] --help" for more information about a command.

$ beach help logs
This command allows you to either display the content of log files
found in Data/Logs/* (default) or show the console output of the
Docker containers (--containers).

Usage:
  beach logs [flags]

Flags:
  -c, --containers   Show log of container console output
  -f, --follow       Follow log output
  -h, --help         help for logs
  -t, --tail int     Number of lines to show from the end of the logs (default 10)

Weitere Fragen

F: Kann ich mehrere subdomains pro Instanz verwenden?

Ja, du kannst zusätzliche virtuelle Hostnamen hinzufügen oder den bestehenden Namen umbenennen, um zum Beispiel ein Projekt mit mehreren Standorten Neos zu entwickeln. Ändere einfach die Umgebungsvariable BEACH_VIRTUAL_HOSTS in eine kommagetrennte Liste von domain Namen und füge diese zu deiner .localbeach.dist.env hinzu.

Wir hoffen, dass dir Local Beach gefällt und dir die Arbeit an Neos und Flow-Projekten noch mehr Freude bereitet.

Dein Flownative Team