4.4 KiB
4.4 KiB
Docker Build Troubleshooting - MYP System
Lösungen für häufige Docker-Build-Probleme beim MYP (Manage Your Printers) System.
🐛 Problem: Package 'ping' has no installation candidate
Fehlermeldung:
E: Package 'ping' has no installation candidate
✅ Lösung:
Das Paket ping
ist ein virtuelles Paket. Verwende stattdessen iputils-ping
.
Korrigiertes Dockerfile:
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
iputils-ping \
sqlite3 \
openssl \
&& rm -rf /var/lib/apt/lists/*
🐛 Problem: Docker Compose nicht verfügbar in WSL2
Fehlermeldung:
The command 'docker-compose' could not be found in this WSL 2 distro.
✅ Lösungen:
Option 1: Docker Desktop WSL2 Integration
- Öffne Docker Desktop
- Gehe zu Settings → Resources → WSL Integration
- Aktiviere WSL2-Integration für deine Distribution
Option 2: Manueller Docker Compose Download
sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Option 3: Verwende das vereinfachte Dockerfile
# Verwende Dockerfile.simple für weniger Komplexität
docker build -f Dockerfile.simple -t myp-system:test .
🐛 Problem: Frontend-Build-Fehler
Fehlermeldung:
COPY failed: file not found in build context
✅ Lösung:
Stelle sicher, dass alle erforderlichen Dateien existieren:
# Prüfe ob package.json existiert
ls -la backend/package.json
# Erstelle fehlende Verzeichnisse
mkdir -p backend/static/css
mkdir -p backend/templates
Vereinfachtes Dockerfile ohne Node.js:
# Verwende Dockerfile.simple ohne Frontend-Build
FROM python:3.11-slim-bullseye
# ... nur Python-Dependencies
🐛 Problem: Datenbankpfad-Probleme
Fehlermeldung:
sqlite3.OperationalError: unable to open database file
✅ Lösung:
Korrekte Datenbankpfad-Konfiguration:
In utils/utilities_collection.py
:
DATABASE_PATH = "database/myp.db" # Relativ zu backend/
Docker-Volumes:
volumes:
- myp-database:/app/database
🛠️ Debugging-Befehle
Container-Status prüfen
# Build-Logs anzeigen
docker build -f Dockerfile.simple -t myp-system:debug . --progress=plain
# Container starten mit Debug-Output
docker run --rm -it myp-system:debug bash
# Container-Logs live verfolgen
docker logs -f container_name
Verzeichnisstruktur prüfen
# Lokale Struktur
find . -name "*.py" | head -10
ls -la backend/
# Im Container
docker run --rm -it myp-system:debug ls -la /app/
Network-Tests
# Container-Netzwerk testen
docker run --rm myp-system:debug ping -c 2 google.com
# Port-Tests
docker run --rm -p 8080:5000 myp-system:debug
curl http://localhost:8080/
🔧 Schnell-Fixes
1. Vereinfachtes Setup
# Verwende setup-docker.sh für automatische Installation
sudo ./setup-docker.sh
2. Ohne Docker Compose
# Direkter Docker-Build
docker build -f Dockerfile.simple -t myp-system .
docker run -d -p 80:5000 --name myp-http myp-system
docker run -d -p 443:5000 --name myp-https myp-system
docker run -d -p 5000:5000 --name myp-dev myp-system
3. Test-Build
# Verwende Test-Skript
./test-docker-build.sh
📋 Build-Checkliste
Vor dem Docker-Build prüfen:
backend/requirements.txt
existiertbackend/package.json
existiertdatabase/
Verzeichnis existiertDockerfile.simple
ist verfügbar- Docker-Daemon läuft
- Ausreichend Speicherplatz (>2GB)
🎯 Produktions-Setup
Für stabiles Produktions-Deployment:
# 1. System vorbereiten
sudo ./setup-docker.sh
# 2. Container starten
docker-compose up -d
# 3. Status prüfen
docker-compose ps
docker-compose logs -f
# 4. Health-Checks
curl -f http://localhost:80/
curl -k -f https://localhost:443/
curl -f http://localhost:5000/
📞 Support
Bei weiteren Problemen:
-
Logs sammeln:
docker-compose logs > docker-logs.txt ./setup-docker.sh > setup-logs.txt
-
System-Info:
docker --version docker-compose --version df -h free -h
-
Fehler melden mit vollständigen Log-Ausgaben
Mercedes-Benz TBA Marienfelde
Autor: Till Tomczak
E-Mail: till.tomczak@mercedes-benz.com