Solr & Docker

Solr & Docker
Photo by Jackson Sophat / Unsplash

Docker vs. LXC-Update: Was ist die bessere Wahl für Solr mit TYPO3 v12?

Ihr steht vor der Frage: Upgrade im bestehenden LXC-Container oder Umstieg auf ein fertiges Docker-Image in einem LXC Container? Beide Wege haben Vor- und Nachteile – hier die Analyse für euren TYPO3-Solr-Stack:


1. Upgrade im LXC-Container (Solr 8.9.0 → 9.8.0)

Vorteile:

  • Kontinuität: Keine Infrastruktur-Änderungen, falls LXC bereits etabliert ist.
  • Datenmigration direkt: Bestehende Cores/Indizes bleiben im gleichen Dateisystem.
  • Kein Port-Conflict: Solr läuft weiter auf dem gleichen Port (z. B. 8983).

Nachteile:

  • Manueller Aufwand: Java-Update, Konfigurationsanpassungen, Risiko von Inkompatibilitäten.
  • Rollback komplexer: Bei Fehlern müsstet ihr das Backup zurückspielen (Downtime-Risiko).
  • TYPO3-Spezialwissen nötig: Die Configs für Solr 9.x müssen manuell aus der Extension gezogen und angepasst werden.

Für wen?

  • Teams, die LXC bereits produktiv nutzen und keine Docker-Erfahrung haben.
  • Kleine Umgebungen mit begrenzten Ressourcen für Infrastruktur-Änderungen.

2. Fertiges Docker-Image nutzen

Vorteile:

  • Plug-and-Play: Das offizielle TYPO3-Solr-Image ist vorkonfiguriert für TYPO3 v12.
    • Enthält bereits die korrekten Schema-Dateien und Configsets.
    • Kein manuelles Java-Update – das Image bringt alle Abhängigkeiten mit.
  • Isolation & Portabilität: Docker-Container laufen unabhängig vom Host-System.
  • Einfaches Rollback: Bei Problemen reicht ein docker compose down und ein Wechsel zum alten Image-Tag.
  • Skalierbarkeit: Ideal für Kubernetes oder Swarm, falls ihr später skalieren wollt.

Nachteile:

  • Datenmigration nötig: Die bestehenden Solr-Indizes müsstet ihr in den Docker-Volume kopieren.
  • Port-Konfiguration: Um Downtime zu vermeiden, müsste der neue Container zunächst auf einem anderen Port laufen (z. B. 8984).
  • Lernkurve: Falls Docker neu im Team ist, braucht es Einarbeitungszeit.

Für wen?

  • Teams, die Docker bereits nutzen oder Modernisierung anstreben.
  • Projekte, die schnelle Updates und Reproduzierbarkeit benötigen.

Entscheidungshilfe: Wann welchen Weg wählen?

Kriterium LXC-Upgrade Docker-Image
Geschwindigkeit ⚠️ Mittel (manuelle Schritte) 🚀 Schnell (vorkonfiguriert)
Wartbarkeit ⚠️ Hoch (manuelle Pflege) ✅ Einfach (Versionierung via Image-Tags)
Disaster Recovery ⚠️ Backup-Restore ✅ Sofortiges Rollback
TYPO3-Integration ⚠️ Manuelle Anpassung ✅ Out-of-the-Box
Team-Skills Erfordert LXC-Knowhow Erfordert Docker-Knowhow

Praxistipp: Hybrid-Ansatz für minimale Downtime

  1. Docker-Image parallel testen:
    • Startet das TYPO3-Solr-Image auf einem temporären Port (z. B. 8984).
    • Migriert die Indizes via rsync oder Solr-APIs in den neuen Container.
    • Testet die TYPO3-v12-Anbindung im Staging.
  2. Cut-over durchführen:
    • Stoppt den alten Solr-8.9.0-Container.
    • Startet das Docker-Image auf Port 8983.
    • Ändert in TYPO3 die Solr-URL auf localhost:8983.
  3. Fallback planen:
    • Bei Problemen: Docker-Container stoppen, alten LXC-Container neu starten.

Warum Docker die bessere Wahl ist (wenn möglich)

  • Zukunftssicherheit: Docker-Images lassen sich leichter mit CI/CD Pipelines verwalten.
  • TYPO3-Optimierung: Das offizielle Image ist speziell für TYPO3 v12 getuned (z. B. Schema, Filter).
  • Community-Support: Fehlerbehebung ist einfacher, da viele TYPO3-Devs das Image nutzen.

Step-by-Step: Umstieg auf Docker

  1. Daten migrieren:
    • Kopiert die Core-Verzeichnisse aus /var/solr/data in das Docker-Volume (meist unter /var/lib/docker/volumes/...).
    • Nutzt docker cp oder bind-mounts für einmaligen Transfer.

Starten und prüfen:

docker-compose up -d
curl http://localhost:8983/solr/#/

Docker-Compose.yml erstellen:

version: '3'
services:
  solr:
    image: typo3solr/solr:9.8
    ports:
      - "8983:8983"
    volumes:
      - solr_data:/var/solr/data
    environment:
      - SOLR_HEAP=2g
volumes:
  solr_data:

TYPO3-Solr-Image pullen:

docker pull typo3solr/solr:9.8

Fazit

Upgrade im LXC ist machbar, aber Docker gewinnt durch:

  • Vereinfachte Konfiguration (TYPO3-optimiertes Image)
  • Isolation und Reproduzierbarkeit
  • Schnelles Rollback

Empfehlung: Nutzt das Docker-Image, wenn ihr die Migration der Indizes stemmen könnt. Für Legacy-Umgebungen, die stark an LXC gebunden sind, bleibt das manuelle Upgrade sinnvoll – aber mit gründlichen Backups!

🚀 Pro-Tipp für recode.at-DevOps:
Testet beide Wege in einer Staging-Umgebung und messt die Aufwände. Dokumentiert die Schritte als Playbook – dann habt ihr für beide Szenarien eine Checkliste!


Okay, "docker run hello-world" läuft jetzt im LXC Container mit TYPO3 V12. Hier ist noch eine Schritt für Schritt Anleitung für die Migration vom alten Solr 8.9.0 direkt im LXC Container auf die neue Solr Version 9.8.0 im Docker Container innerhalb des LXC Containers.

🚀 Dein Turbo-Upgrade für TYPO3 v12: Solr 8.9.0 → 9.8.0 in Docker migrieren: Von LXC zu Docker – ohne Kopfschmerzen!

Hey DevOps-Crew! Du willst dein TYPO3 v12 mit Solr 9.8.0 auf Vordermann bringen? Kein Bock auf manuelles Java-Getüdel im LXC? Dann schnapp dir Docker und lass uns deine Solr-Instanz in 20 Minuten fliegen lassen! Hier kommt die Anleitung, die dich von Legacy zu Modern bringt.


Warum überhaupt upgraden?

  • TYPO3 v12 braucht Solr 9.x – ohne geht’s nicht.
  • Docker ist dein Freund: Isoliert, reproduzierbar und easy zu warten.
  • Performance-Boost: Solr 9.8.0 frisst große Indizes zum Frühstück.

Step 0: Vorbereitung – Backup, Backup, Backup!

Bevor du loslegst: Sichere alles, wirklich alles. Ein falscher Klick, und der Index ist futsch.

# Stoppe den alten Solr 8.9.0  
sudo systemctl stop solr  

# Backup der Solr-Daten (Pfad anpassen, falls nötig)  
sudo tar -czvf /opt/solr-8.9.0-backup-$(date +%F).tar.gz -C /opt/solr-8.9.0 .

# Backup der Solr-Cores (wo eure wertvollen Daten leben!)
sudo tar -czvf /opt/solr-data-backup-$(date +%F).tar.gz -C /var/solr/data .

Pro-Tipp: Lagere das Backup auf einem anderen Server – sicher ist sicher!


Step 1: Hol dir das TYPO3-Solr-Docker-Image

Das offizielle Image ist goldwert – vorkonfiguriert und TYPO3-optimiert:

docker pull typo3solr/ext-solr:12.0

docker images
  # REPOSITORY           TAG       IMAGE ID       CREATED        SIZE
  # typo3solr/ext-solr   12.0      c341cc67984f   3 months ago   760MB

Step 2: Daten migrieren – so klappt’s

Deine alten Solr-Cores müssen in den Docker-Container umziehen. Aber keine Sorge, das ist simpler, als es klingt.

A. Verzeichnis für Docker-Daten anlegen

sudo mkdir -p /opt/solr-docker/cores  

B. Core-Daten kopieren

# Beispiel: Kopiere alle Cores aus dem alten Solr  
sudo cp -r /opt/solr-8.9.0/server/solr/cores/* /opt/solr-docker/cores/  

C. Berechtigungen fixen

Das ist der heimliche MVP-Schritt! Docker braucht den User 8983:

sudo chown -R 8983:8983 /opt/solr-docker/cores  

🔥 Achtung: Ohne diesen Befehl startet Solr nicht – also nicht überspringen!


Step 3: Starte den Docker-Container

Jetzt wird’s spannend – der Container kommt zum Leben:

docker run -d \  
  -p 8983:8983 \  
  -v /opt/solr-docker/cores:/var/solr/cores \  
  --name typo3-solr \  
  typo3solr/ext-solr:12.0  

Erklärung:

  • -p 8983:8983: Der gleiche Port wie vorher – kein Stress mit Firewall-Regeln.
  • -v ...: Deine Core-Daten werden ins Docker-Volume gemountet.

Mit --restart wird der SOLR Server auch nach einem Neustart des LXC Servers wieder gestartet.

docker update --restart=always typo3-solr

Step 4: Check, ob alles läuft

A. Solr-Dashboard prüfen

Öffne im Browser: http://dein-server:8983/solr/#/~cores
→ Siehst du deine Cores? Yes! 🎉

B. Logs checken

docker logs -f typo3-solr  # Strg+C zum Beenden  

Keine Errors? Perfekt!


Step 5: TYPO3 anpassen

Jetzt muss TYPO3 wissen, wo der neue Solr wohnt.

  1. Backend öffnen: Gehe zu System > Solr Connections.
  2. URL anpassen: Stelle sicher, dass http://localhost:8983/solr/ eingetragen ist.
  3. Verbindung testen: Klick auf Check Connection – grünes Licht? 🔋

Step 6: Re-Indexing (nur im Notfall)

Eigentlich sollten die alten Indizes passen. Aber falls die Suche spinnt:

# In der TYPO3-CLI:  
./typo3/sysext/core/bin/typo3 solr:indexqueue:queue  

Troubleshooting – Rette deinen Tag

Problem: "Core not found"

  • Lösung: Prüfe, ob der Core-Name in TYPO3 und Solr identisch ist.

Problem: Permission denied

Lösung:

# Nochmal Berechtigungen setzen  
sudo chown -R 8983:8983 /opt/solr-docker/cores  

Problem: Container startet nicht

Lösung:

# Logs checken, Fehlermeldung googeln & recode.at Community fragen 😉  
docker logs typo3-solr  

Warum Docker besser ist als LXC-Upgrade

  • Kein Java-Wirrwarr: Docker bringt die passende Version mit.
  • Rollback in Sekunden: Bei Problemen: docker stop und alte Instanz starten.
  • TYPO3-Optimiert: Das Image kennt alle TYPO3-Schema-Tricks.

FAZIT

Du hast jetzt:
✅ Solr 9.8.0 im Docker-Container am Laufen
✅ TYPO3 v12 komplett kompatibel
✅ Eine moderne, wartbare Infrastruktur

Und was machst du jetzt? Klar – in der recode.at Community flexen, wie easy das Upgrade war! 🚀

Fragen? Her damit in die Kommentare! Und vergiss nicht: Sharing is Caring – teile den Artikel mit deinem Team!


👉 Diskutiert weiter in der recode.at Community: Teilt eure Erfahrungen mit LXC vs. Docker!


DevOps @ recode.at | #Solr #TYPO3 #Docker #DevOps