Diese Anleitung erklärt, wie Sie den PostgreSQL-Port 5432 in einer Docker-Umgebung dauerhaft freigeben – so bleibt die Einstellung auch nach System-Updates erhalten. Die Lösung nutzt eine Docker-Override-Datei, die die bestehende Konfiguration erweitert, ohne sie zu überschreiben.
💡 Tipp: Weitere Informationen zur Erweiterung von Docker-Compose-Konfigurationen finden Sie in der offiziellen Docker-Dokumentation.
Schritt-für-Schritt-Anleitung
Schritt 1: Override-Datei erstellen
- Wechseln Sie in das Verzeichnis
/opt/venabo/shared. - Erstellen Sie dort die Datei docker-compose.override.yml mit folgendem Inhalt:
version: '3'
services:
pgsql:
ports:
- "5432:5432"
Diese Datei erweitert die bestehende Docker-Konfiguration und macht den PostgreSQL-Port 5432 von außen erreichbar.
Schritt 2: symlinks.yml anpassen
Damit venabo die Override-Datei bei zukünftigen Updates automatisch berücksichtigt, tragen Sie sie in der Datei symlinks.yml ein. Fügen Sie folgenden Eintrag hinzu:
'docker-compose.override.yml': 'docker-compose.override.yml'
⚠️ Hinweis: Ohne diesen Eintrag in der symlinks.yml wird die Override-Datei bei einem Update nicht automatisch verknüpft und die Portfreigabe geht verloren.
Schritt 3: Symlinks neu erstellen
Führen Sie das Update-Tool aus, um die Symlinks neu zu erzeugen und die Änderung wirksam zu machen:
/opt/venabo/tools/update/update.sh --createSymlinks
Schritt 4: Docker-Container neu erstellen
Starten Sie die Docker-Container neu, damit die neue Konfiguration greift:
cd /opt/venabo/releases/current docker-compose down docker-compose up -d --build
✅ Ergebnis: Der PostgreSQL-Port 5432 ist jetzt dauerhaft freigegeben und bleibt auch nach zukünftigen Updates erhalten.
Praxisbeispiel
Szenario: Sie möchten von einem externen Datenbankwerkzeug (z. B. DBeaver oder pgAdmin) auf die PostgreSQL-Datenbank Ihrer venabo-Installation zugreifen. Dazu muss Port 5432 auf dem Host erreichbar sein.
| Schritt | Aktion | Ergebnis |
|---|---|---|
| 1 | docker-compose.override.yml in /opt/venabo/shared anlegen |
Port-Mapping wird definiert |
| 2 | Eintrag in symlinks.yml ergänzen |
Datei bleibt update-sicher verknüpft |
| 3 | update.sh --createSymlinks ausführen |
Symlink wird neu gesetzt |
| 4 | docker-compose down && up -d --build |
Container startet mit aktivem Port 5432 |
| ✅ | Verbindung über Host-IP:5432 möglich | Externes Tool kann auf die Datenbank zugreifen |
Häufige Fragen
Warum reicht es nicht, den Port direkt in der docker-compose.yml einzutragen?
Die Datei docker-compose.yml wird bei jedem venabo-Update automatisch überschrieben. Änderungen darin gehen daher verloren. Die Override-Datei bleibt davon unberührt und ergänzt die Konfiguration dauerhaft.
Was passiert, wenn ich den Eintrag in der symlinks.yml vergesse?
Ohne den Eintrag in der symlinks.yml erstellt venabo beim nächsten Update keinen Symlink auf die Override-Datei. Die Portfreigabe ist dann nach dem Update nicht mehr aktiv.
Kann ich auf dieselbe Weise auch andere Ports freigeben?
Ja. Das gleiche Prinzip funktioniert für beliebige Dienste und Ports. Passen Sie in der Override-Datei einfach den Dienstnamen und die Portnummer entsprechend an.
Muss ich die Container nach jedem Update erneut neu starten?
venabo-Updates starten die Container in der Regel automatisch neu. Solange die Override-Datei korrekt in der symlinks.yml eingetragen ist, bleibt die Portfreigabe ohne weiteren manuellen Eingriff aktiv.
Zusammenfassung
| Thema | Details |
|---|---|
| Freizugebender Port | PostgreSQL-Port 5432 |
| Konfigurationsdatei | /opt/venabo/shared/docker-compose.override.yml |
| Update-Sicherheit | Eintrag in symlinks.yml erforderlich |
| Symlinks neu setzen | update.sh --createSymlinks |
| Aktivierung | docker-compose down + docker-compose up -d --build |
| Ergebnis | Port dauerhaft freigegeben, auch nach Updates |