Multi-Environment Setups mit Docker Compose ermöglichen die konsistente Verwaltung von Entwicklungs-, Staging- und Produktionsumgebungen. Jede Umgebung hat unterschiedliche Anforderungen in Bezug auf Ressourcen, Debugging, Logging und Sicherheit. Mit gezieltem Einsatz von Basis-Compose-Dateien und Overrides lassen sich dev/stage/prod sauber trennen und automatisierte Deployments sicher durchführen.
Warum Multi-Environment Setups wichtig sind
Unterschiedliche Umgebungen dienen spezifischen Zwecken:
- Development: Debugging, Hot-Reload, Testdaten und ausführliche Logs
- Staging: Testumgebung, die Produktion möglichst realistisch simuliert
- Production: Stabile Versionen, minimal exponierte Ports, Ressourcenlimits und Secrets
Die Trennung verhindert, dass Debug-Features oder unsichere Ports in die Produktion gelangen und erleichtert Rollbacks und Updates.
Basis-Compose-Datei
Eine zentrale Basisdatei docker-compose.base.yml definiert gemeinsame Services, Netzwerke und Volumes:
version: "3.9"
services:
web:
image: myorg/web:1.0.0
networks:
- frontend
api:
image: myorg/api:2.0.0
networks:
- backend
db:
image: postgres:16
volumes:
- db_data:/var/lib/postgresql/data
networks:
frontend:
backend:
volumes:
db_data:
- Minimiert Redundanz zwischen Umgebungen
- Grundkonfiguration für alle Environments
- Services können in Overrides erweitert oder angepasst werden
Development Override
In Development werden zusätzliche Features aktiviert:
version: "3.9"
services:
web:
build: ./web
ports:
- "3000:3000"
volumes:
- ./web/src:/app/src
environment:
- DEBUG=true
api:
build: ./api
ports:
- "5000:5000"
environment:
- DEBUG=true
- Hot-Reload durch lokale Volumes
- Debugging aktiviert via Environment Variables
- Exponierte Ports für lokale Tests
Staging Override
Staging simuliert die Produktionsumgebung mit stabilen Images, jedoch ohne Live-Traffic:
version: "3.9"
services:
web:
image: myorg/web:1.0.0
environment:
- DEBUG=false
deploy:
replicas: 2
restart_policy:
condition: on-failure
api:
image: myorg/api:2.0.0
environment:
- DEBUG=false
deploy:
replicas: 1
restart_policy:
condition: on-failure
- Simuliert Produktion ohne Produktionsdaten
- Healthchecks prüfen Stabilität
- Externe Ports werden minimal freigegeben
Production Override
In der Produktion sind Sicherheit und Skalierbarkeit entscheidend:
version: "3.9"
services:
web:
image: myorg/web:1.0.0
environment:
- DEBUG=false
deploy:
replicas: 3
resources:
limits:
cpus: "1.0"
memory: "512M"
restart_policy:
condition: on-failure
ports:
- "80:80"
secrets:
- db_password
api:
image: myorg/api:2.0.0
environment:
- DEBUG=false
deploy:
replicas: 2
resources:
limits:
cpus: "0.5"
memory: "256M"
restart_policy:
condition: on-failure
secrets:
- api_key
secrets:
db_password:
external: true
api_key:
external: true
- Stabile Images mit Versionierung
- Secrets für sensible Daten
- Ressourcenlimits und Restart Policies aktiv
- Skalierung über Replicas
Deployment mit Multi-Environment Compose
Docker Compose erlaubt die Kombination von Basis- und Override-Dateien:
# Entwicklungsstart
docker-compose -f docker-compose.base.yml -f docker-compose.override.dev.yml up -d
# Staging
docker-compose -f docker-compose.base.yml -f docker-compose.override.stage.yml up -d
# Produktion
docker-compose -f docker-compose.base.yml -f docker-compose.override.prod.yml up -d
- Die zweite Datei überschreibt oder ergänzt die Basisdefinition
- Ermöglicht konsistente Deployments in allen Umgebungen
- Reduziert Fehler durch Duplizierung von Konfiguration
Netzwerk- und Portmanagement
- Entwicklungs-Umgebung: Alle benötigten Ports für Debugging freigegeben
- Staging: Minimale Portfreigaben, simuliert Produktion
- Produktion: Nur notwendige Ports nach außen öffnen, z. B. 80/443
- Netzwerke für Frontend und Backend strikt trennen
Best Practices für Multi-Environment Setups
- Stabile, versionierte Images verwenden
- Secrets statt Environment Variables für sensible Daten
- Healthchecks in Staging und Produktion implementieren
- Ressourcenlimits für CPU und RAM setzen
- Automatisierte Tests vor Umschaltung in Produktion
- Rollback-Mechanismen planen (Blue-Green oder Rolling Updates)
- Logging und Monitoring auf Umgebung anpassen
- Volumes in Development nur für Hot-Reload nutzen
Monitoring und Logging
Entwicklungs-, Staging- und Produktionsumgebungen unterscheiden sich beim Logging:
- Development: ausführliche Logs, Debug-Informationen
- Staging: Logs wie in Produktion, aber ohne Live-Traffic
- Production: zentrale Logs, Healthchecks, Alerts
- Monitoring-Tools: Prometheus, Grafana, ELK, Loki
Zusammenfassung
Multi-Environment Setups mit Docker Compose ermöglichen die konsistente Verwaltung von Development, Staging und Production. Durch Basis-Compose-Dateien und spezifische Overrides können Debugging, Hot-Reload und Tests in Development erfolgen, während Staging und Production stabil, abgesichert und skalierbar bleiben. Die Trennung reduziert Fehler, erleichtert Rollbacks und sorgt für wartbare, sichere Produktionsumgebungen.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

