Repository navigation
[DE][Loslegen] Smartstore und Datenbank zusammen als Docker-Container betreiben #25
Description
GitBook-Seite
Pfad: loslegen/die-installation-von-smartstore/smartstore-docker-images-ausfuhren/smartstore-und-datenbank-zusammen-als-docker-container-betreiben
GitBook URL: https://app.gitbook.com/s/TTbkdOKWtE8u6wJ7suvC/loslegen/die-installation-von-smartstore/smartstore-docker-images-ausfuhren/smartstore-und-datenbank-zusammen-als-docker-container-betreiben
Sprache: DE
Bereich: Loslegen
GitBook Page ID: aA1Z0tS0cijAIPTwCffL
Git Sync Pfad: de/loslegen/die-installation-von-smartstore/smartstore-docker-images-ausfuhren/smartstore-und-datenbank-zusammen-als-docker-container-betreiben.md
Durchläufe
- DE Sprache
- DE Sprachreview
- DE Optimierungsvorschläge
- DE Optimierungsreview
- DE Fachcheck
- DE Fachreview
- Screenshots prüfen
- Screenshots ggf. ersetzen
- EN Sync
- EN Review
Change Requests
- DE Sprache: https://app.gitbook.com/o/jug3iI9jtm3q3KRxHi73/s/TTbkdOKWtE8u6wJ7suvC/~/changes/PALr1htTTP0F1djC6m2a/
- Optimierung: https://app.gitbook.com/o/jug3iI9jtm3q3KRxHi73/s/TTbkdOKWtE8u6wJ7suvC/~/changes/Orcq8FmNTROY0PT7PoT2/
- DE Fachcheck: GitBook CR #504
- Screenshots:
- EN Sync:
Optimierungsvorschläge
1. Voraussetzungen und Auswahl zwischen MySQL und SQL Server voranstellen
Vorschlag: Zu Beginn kurz erklären, dass Docker Engine beziehungsweise Docker Desktop mit Docker Compose benötigt wird und dass genau eines der beiden Beispiele gewählt wird. Zusätzlich erläutern, dass die Befehle im Verzeichnis der Compose-Datei ausgeführt werden.
Argumente für den Reviewer:
- Die Seite beginnt direkt mit der Dateierstellung, ohne Voraussetzungen oder Entscheidungshilfe.
- Beide Abschnitte verwenden denselben Dateinamen, dürfen aber nicht gemeinsam unverändert in eine Datei kopiert werden.
Empfehlung: Umsetzen.
2. Compose-Dateien an die aktuelle Spezifikation und reproduzierbare Tags anpassen
Betroffene Inhalte: version: "3.4" sowie Images ohne explizite Version.
Vorschlag: Das obsolete oberste version-Feld entfernen und für Smartstore sowie die Datenbankserver fachlich freigegebene Versions-Tags verwenden. Die Beispiele sollten mit den gepflegten Compose-Dateien im Smartstore-Repository abgeglichen werden.
Argumente für den Reviewer:
- Docker kennzeichnet das oberste
version-Feld nur noch als informativ und veraltet. mysql,mcr.microsoft.com/mssql/serverund das Smartstore-Image ohne Tag können bei einem späteren Start auf andere Inhalte zeigen.- Feste Tags verbessern Reproduzierbarkeit und Rollbackfähigkeit.
Empfehlung: Umsetzen; konkrete Tags fachlich bestätigen lassen.
3. Widersprüchliche Datenbankinitialisierung und Zugangsdaten korrigieren
Betroffene Inhalte: Im MySQL-Beispiel sind MYSQL_DATABASE und MYSQL_USER auskommentiert, MYSQL_PASSWORD bleibt gesetzt; trotzdem nennt der Text smartstore als Datenbank. Im SQL-Server-Beispiel wird die veraltete Variable SA_PASSWORD verwendet.
Vorschlag: Für jedes Beispiel eine konsistente Initialisierung definieren und anschließend alle Installationsfelder vollständig angeben: Servername db im Compose-Netzwerk, interner Port, Datenbankname, Benutzer und Passwort. Für SQL Server MSSQL_SA_PASSWORD verwenden.
Argumente für den Reviewer:
- Beim offiziellen MySQL-Image werden
MYSQL_USERundMYSQL_PASSWORDgemeinsam verwendet;MYSQL_DATABASElegt die beim Start erzeugte Datenbank fest. - Microsoft kennzeichnet
SA_PASSWORDals veraltet und dokumentiertMSSQL_SA_PASSWORD. - Die derzeitige Liste lässt Servername und Benutzer aus und kann nicht allein zur Konfiguration der Installation verwendet werden.
Empfehlung: Umsetzen und beide Beispiele praktisch testen.
4. Datenbankbereitschaft statt bloßer Startreihenfolge berücksichtigen
Vorschlag: Einen Healthcheck für den Datenbankdienst und eine passende depends_on-Bedingung ergänzen oder ausdrücklich erklären, dass der Datenbankcontainer vor dem Smartstore-Installationsversuch vollständig initialisiert sein muss.
Argumente für den Reviewer:
- Docker Compose startet Abhängigkeiten in Reihenfolge, wartet standardmäßig aber nur auf „running“ und nicht auf die Betriebsbereitschaft der Datenbank.
- Die Erstinitialisierung von MySQL und SQL Server kann länger dauern.
Empfehlung: Healthcheck bevorzugen und fachlich testen.
5. Passwörter, Portfreigaben und Produktionsbetrieb absichern
Vorschlag: Keine echten Beispielpasswörter fest in der Compose-Datei empfehlen. Platzhalter über eine nicht versionierte .env-Datei oder eine geeignete Secret-Lösung verwenden. Datenbankports nur dann auf den Host veröffentlichen, wenn externer Zugriff tatsächlich benötigt wird.
Argumente für den Reviewer:
- Der Hinweis, Passwörter später zu ändern, verhindert nicht, dass leicht erkennbare Zugangsdaten zunächst aktiv sind.
- Innerhalb des Compose-Netzwerks erreicht Smartstore den Dienst
dbüber dessen internen Port; eine Host-Portfreigabe ist dafür nicht erforderlich. - Unnötig veröffentlichte Datenbankports vergrößern die Angriffsfläche.
Empfehlung: Umsetzen.
6. Persistenz, Pfade und Lebenszyklus verständlich erklären
Betroffene Inhalte: Fest eingetragene Windows-Pfade mit Laufwerksbuchstaben; im SQL-Server-Beispiel verweist der Tenant-Pfad außerdem auf den Ordnernamen mysql.
Vorschlag: Plattformneutrale Platzhalter oder benannte Volumes verwenden und erläutern, welche Daten in App_Data/Tenants und in den Datenbankvolumes erhalten bleiben. Ergänzend docker compose up -d, docker compose ps, docker compose logs und docker compose down erklären; vor down -v ausdrücklich warnen.
Argumente für den Reviewer:
- Die aktuellen Hostpfade sind nicht portabel und enthalten im SQL-Server-Beispiel eine irreführende Bezeichnung.
- Anwender benötigen einen sicheren Start-, Diagnose- und Stoppablauf.
- Das Entfernen von Volumes kann Daten unwiederbringlich löschen.
Empfehlung: Umsetzen.
Prüfquellen
- Smartstore-Compose-Dateien: https://github.com/smartstore/Smartstore
- Docker Compose: veraltetes
version-Feld: https://docs.docker.com/reference/compose-file/version-and-name/ - Docker Compose: Startbereitschaft und Healthchecks: https://docs.docker.com/compose/how-tos/startup-order/
- Offizielles MySQL-Image und Umgebungsvariablen: https://hub.docker.com/_/mysql
- Microsoft SQL Server: Umgebungsvariablen: https://learn.microsoft.com/en-us/sql/linux/configure/environment-variables
- Docker-Volumes: https://docs.docker.com/engine/storage/volumes/
Reviewer-Hinweise
Die Optimierungsvorschläge wurden in GitBook Change Request #60 umgesetzt:
- Voraussetzungen und klare Auswahl zwischen MySQL und Microsoft SQL Server ergänzt,
- Compose-Beispiele auf benannte Volumes, sichere
.env-Variablen und definierte Image-Tags umgestellt, - MySQL-Initialisierung und SQL-Server-Variable
MSSQL_SA_PASSWORDkorrigiert, - Healthchecks, vollständige Connection-Daten sowie Start-, Diagnose- und Stoppbefehle ergänzt,
- vor dem versehentlichen Löschen persistenter Volumes gewarnt.
Technische Validierung:
- kontrollierten Markdown-Roundtrip mit stabilen Datei-IDs verwendet,
- beide Bilder und den GitBook-Hinweis unverändert erhalten,
- drei erwartete Codeblöcke gespeichert:
.env, MySQL-Compose und SQL-Server-Compose, - genau eine GitBook-Seite geändert; Titel, Pfad und Metadaten unverändert,
- CR ist aktuell und konfliktfrei.
Der Change Request wurde nicht gemergt und wartet auf den DE Optimierungsreview.
GitBook Change Request #60 wurde geprüft und gemergt.
Der Fachcheck wird von zihniartar durchgeführt.
Offene Fragen
- Beide überarbeiteten Compose-Beispiele müssen vor Veröffentlichung vollständig getestet werden.
- Die aktuell gepflegten Compose-Dateien im Repository enthalten dieselben problematischen Standardwerte; Dokumentation und Repository-Beispiele sollten gemeinsam abgestimmt werden.
Activity
GITBOOK-60: Optimierung Issue #25 – Smartstore und Datenbank als Dock…