
Anleitungen im Zusammenhang mit Local Beach
Wie man Elasticsearch mit Local Beach
Diese Anleitung erklärt, wie man einen lokalen Elasticsearch-Container für die Entwicklung von Neos und Flow Projekten betreibt.
Übersicht
Du kannst das offizielle Elasticsearch-Image für die lokale Entwicklung verwenden. Da Beach in der Produktion gehostetes Elasticsearch verwendet, wird dadurch sichergestellt, dass sich alle Systeme gleich verhalten. Der einzige Unterschied ist, dass die Local Beach Version keinen Passwortschutz hat.
Wenn du ein laufendes Local Beach Setup für dein Projekt hast, musst du nur noch die Container-Konfiguration hinzufügen, um Elasticsearch hinzuzufügen.
Elasticsearch zu Docker Compose hinzufügen
Öffne die Datei .localbeach.docker-compose.yaml deines Local Beach Projekts und füge das Folgende am Ende der Datei hinzu:
elasticsearch:
image: elasticsearch:${BEACH_ELASTICSEARCH_IMAGE_VERSION}
container_name: ${BEACH_PROJECT_NAME:?Please specify a Beach project name as BEACH_PROJECT_NAME}_elasticsearch
networks:
- local_beach
ports:
- 9200:9200
volumes:
- ./.LocalBeach/elasticsearch/data:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
environment:
- cluster.name=${BEACH_PROJECT_NAME:?Please specify a Beach project name as BEACH_PROJECT_NAME}
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
Wenn du vom Host aus keinen Zugriff auf Elasticsearch brauchst, kannst du den Abschnitt "Ports" weglassen. Falls du Zugriff brauchst, aber mehrere Local Beach Projekte mit Elasticsearch betreiben willst, passe den Port auf dem Host an, um Konflikte zu vermeiden!
Achte darauf, dass du auch den Abschnitt "environment" unterhalb des php-Dienstes in derselben Datei bearbeitest:
php:
environment:
- BEACH_ELASTICSEARCH_HOSTNAME=${BEACH_ELASTICSEARCH_HOSTNAME}
- BEACH_ELASTICSEARCH_PORT=${BEACH_ELASTICSEARCH_PORT:-9200}
- BEACH_ELASTICSEARCH_INDEX_NAME=${BEACH_ELASTICSEARCH_INDEX_NAME}
Öffne nun die Datei .localbeach.dist.env und konfiguriere die zu verwendende Elasticsearch-Version:
BEACH_ELASTICSEARCH_IMAGE_VERSION=7.13.4
Neos für die Verwendung von Elasticsearch konfigurieren
Als Nächstes musst du Neos mitteilen, wo du den Elasticsearch-Container findest. Wenn du zum Beispiel Elasticsearch 7.x verwendest, muss die folgende Konfiguration in deine Konfiguration/Entwicklung/Beach/Instance/Settings .yaml eingetragen werden:
Neos:
ContentRepository:
Search:
elasticSearch:
indexName: '%env:BEACH_ELASTICSEARCH_INDEX_NAME%'
Flowpack:
ElasticSearch:
clients:
default:
- host: '%env:BEACH_ELASTICSEARCH_HOSTNAME%'
port: '%env:BEACH_ELASTICSEARCH_PORT%'
Flowpack:
ElasticSearch:
ContentRepositoryAdaptor:
driver:
version: 7.x
Bearbeite .localbeach.dist.env, um den zu verwendenden Indexnamen festzulegen:
BEACH_ELASTICSEARCH_INDEX_NAME=someindexname
Du solltest jetzt in der Lage sein, Elasticsearch in deinem Local Beach Setup zu verwenden.
Wenn etwas schief läuft, solltest du zuerst die Einstellungen überprüfen (z.B. indem du ./flow configuration:show --type Settings in deiner Local Beach Shell aufrufst) und dann nach Fehlern in den Container-Logs suchen (mit beach local:logs).