4.8 KiB
4.8 KiB
Docker-Compose Fehler Behebung - Vollständige Lösung
Problemübersicht
Die folgenden Fehler wurden beim Ausführen der docker-compose Befehle identifiziert und behoben:
- Network-Konfigurationsfehler:
meldestelle-network declared as external, but could not be found - ContainerConfig KeyError: Fehler beim Inspizieren bestehender Container
- API Gateway Service-Fehler:
Service api-gateway has neither an image nor a build context specified - Deploy Resource Warnings: Unsupported
reservations.cpussub-keys
🔧 Angewendete Lösungen
1. Network-Konfiguration korrigiert ✓
Problem: Inkonsistente Network-Definitionen zwischen compose-Dateien
docker-compose.yml:driver: bridgedocker-compose.services.ymlunddocker-compose.clients.yml:external: true
Lösung:
- Entfernung von
external: trueaus allen compose-Dateien - Einheitliche Verwendung von
driver: bridge
2. ContainerConfig KeyError behoben ✓
Problem: Korrupte Container-Metadaten von vorherigen Runs Lösung:
- Bereinigung aller bestehenden Container
- Befehl:
docker rm $(docker ps -a -q --filter "name=meldestelle")
3. API Gateway Service-Konfiguration ✓
Problem: docker-compose.override.yml referenziert Services, die nicht in der Basis-Konfiguration definiert sind
Lösung:
- Korrekte Verwendung der compose-Datei-Kombinationen
docker-compose.override.ymlnur zusammen mitdocker-compose.services.ymlverwenden
4. Deploy Resource Warnings eliminiert ✓
Problem: Docker Compose 1.29.2 unterstützt keine reservations unter deploy.resources
Lösung:
- Entfernung aller
reservationsSektionen ausdocker-compose.services.yml - Beibehaltung der
limitsKonfigurationen
✅ Korrekte Docker-Compose Befehle
Vorbereitung (einmalig nach Fehlern)
# Zum richtigen Verzeichnis wechseln
cd /home/stefan-mo/WsMeldestelle/Meldestelle
# Bestehende Container bereinigen (falls ContainerConfig Fehler auftreten)
docker rm $(docker ps -a -q --filter "name=meldestelle") 2>/dev/null || true
# Verwaiste Images bereinigen (optional)
docker image prune -f
1. Alle Services einschließlich Clients
docker-compose \
-f docker-compose.yml \
-f docker-compose.services.yml \
-f docker-compose.clients.yml \
up -d
2. Nur Infrastructure für Backend-Entwicklung
docker-compose -f docker-compose.yml up -d postgres redis kafka consul zipkin
3. Mit Debug-Unterstützung für Service-Entwicklung
DEBUG=true SPRING_PROFILES_ACTIVE=docker \
docker-compose -f docker-compose.yml -f docker-compose.services.yml up -d
4. Mit Live-Reload für Frontend-Entwicklung
# WICHTIG: Nur verwenden wenn docker-compose.services.yml ebenfalls geladen wird
docker-compose \
-f docker-compose.yml \
-f docker-compose.services.yml \
-f docker-compose.override.yml \
up -d
🚨 Wichtige Hinweise
Override-Datei Verwendung
docker-compose.override.ymldarf NICHT allein mitdocker-compose.ymlverwendet werden- Grund: Override definiert nur Konfigurationsüberschreibungen, keine vollständigen Services
- Richtig:
-f docker-compose.yml -f docker-compose.services.yml -f docker-compose.override.yml - Falsch:
-f docker-compose.yml -f docker-compose.override.yml
Network-Konsistenz
- Alle compose-Dateien verwenden jetzt
driver: bridgefürmeldestelle-network - Keine
external: trueDeklarationen mehr vorhanden - Network wird automatisch von Docker Compose erstellt
Resource-Limits
- Nur
limitswerden verwendet (memory, cpus) reservationswurden entfernt (nicht unterstützt in Docker Compose 1.29.2)- Services starten ohne Warnings
🔍 Fehlerbehebung
Bei "ContainerConfig" Fehlern:
docker rm $(docker ps -a -q --filter "name=meldestelle") 2>/dev/null || true
docker-compose down --volumes --remove-orphans 2>/dev/null || true
Bei Network-Fehlern:
docker network ls | grep meldestelle
docker network rm meldestelle-network 2>/dev/null || true
Bei Build-Fehlern:
docker-compose build --no-cache --pull
🧪 Verifikation
Status prüfen:
docker-compose ps
docker network ls | grep meldestelle
Logs überwachen:
docker-compose logs -f [service-name]
Services stoppen:
docker-compose down
# Mit Volumes entfernen:
docker-compose down -v
✅ Zusammenfassung
- ✅ Network-Konfiguration vereinheitlicht
- ✅ ContainerConfig-Fehler durch Container-Cleanup behoben
- ✅ API Gateway Service-Konfiguration korrigiert
- ✅ Deploy Resource Warnings eliminiert
- ✅ Korrekte Verwendung der compose-Datei-Kombinationen dokumentiert
Alle ursprünglichen Fehler wurden behoben. Die docker-compose Befehle sollten nun ohne Fehler oder Warnings ausgeführt werden können.