diff --git a/install-backend.sh b/install-backend.sh index 32b71df..cb1e03d 100755 --- a/install-backend.sh +++ b/install-backend.sh @@ -322,17 +322,59 @@ fi log "${YELLOW}Baue und starte Backend-Container...${NC}" log "${YELLOW}Dies kann auf einem Raspberry Pi einige Minuten dauern - bitte geduldig sein${NC}" +# Prüfe, ob Docker-Daemon läuft +if ! docker info &>/dev/null; then + log "${YELLOW}Docker-Daemon scheint nicht zu laufen. Versuche zu starten...${NC}" + + # Versuche Docker zu starten + if command -v systemctl &>/dev/null; then + sudo systemctl start docker || true + sleep 5 + elif command -v service &>/dev/null; then + sudo service docker start || true + sleep 5 + fi + + # Prüfe erneut, ob Docker jetzt läuft + if ! docker info &>/dev/null; then + error_log "Docker-Daemon konnte nicht gestartet werden." + log "Führen Sie vor der Installation bitte folgende Befehle aus:" + log " sudo systemctl start docker" + log " sudo systemctl enable docker" + log "Starten Sie dann das Installationsskript erneut." + exit 1 + fi +fi + +# Docker-Rechte prüfen +if ! docker ps &>/dev/null; then + error_log "Sie haben keine Berechtigung, Docker ohne sudo zu verwenden." + log "Bitte führen Sie folgenden Befehl aus und melden Sie sich danach neu an:" + log " sudo usermod -aG docker $USER" + exit 1 +fi + +# Prüfen, ob erforderliche Basis-Images lokal verfügbar sind +if ! docker image inspect python:3-slim &>/dev/null; then + log "${YELLOW}Basis-Image wird gedownloaded, dies kann einige Zeit dauern...${NC}" + if ! docker pull python:3-slim; then + error_log "Konnte Basis-Image nicht herunterladen." + log "Prüfen Sie Ihre Internetverbindung oder verwenden Sie ein bereits vorhandenes Image." + exit 1 + fi +fi + # Erhöhe Docker-Timeout für langsame Verbindungen und Raspberry Pi -export DOCKER_CLIENT_TIMEOUT=120 -export COMPOSE_HTTP_TIMEOUT=120 +export DOCKER_CLIENT_TIMEOUT=300 +export COMPOSE_HTTP_TIMEOUT=300 # Verwende die richtige Docker Compose Version if [ "${DOCKER_COMPOSE_V2:-false}" = true ]; then # Docker Compose V2 Plugin (docker compose) - log "Baue lokales Image (ohne Pull-Versuch)..." - if ! docker compose build --no-cache --pull=false; then + log "Baue lokales Image..." + if ! docker compose build --no-cache; then error_log "Docker Compose Build (v2) fehlgeschlagen. Versuche mit v1 Format..." - if ! docker-compose build --no-cache --pull=false; then + if ! docker-compose build --no-cache; then error_log "Docker Compose Build fehlgeschlagen. Siehe Fehlermeldung oben." exit 1 fi @@ -348,8 +390,8 @@ if [ "${DOCKER_COMPOSE_V2:-false}" = true ]; then fi else # Docker Compose V1 (docker-compose) - log "Baue lokales Image (ohne Pull-Versuch)..." - if ! docker-compose build --no-cache --pull=false; then + log "Baue lokales Image..." + if ! docker-compose build --no-cache; then error_log "Docker Compose Build fehlgeschlagen. Siehe Fehlermeldung oben." exit 1 fi diff --git a/install-frontend.sh b/install-frontend.sh index c8d01ab..d831f9b 100755 --- a/install-frontend.sh +++ b/install-frontend.sh @@ -329,17 +329,59 @@ fi log "${YELLOW}Baue und starte Frontend-Container...${NC}" log "${YELLOW}Dies kann auf einem Raspberry Pi mehrere Minuten dauern - bitte geduldig sein${NC}" +# Prüfe, ob Docker-Daemon läuft +if ! docker info &>/dev/null; then + log "${YELLOW}Docker-Daemon scheint nicht zu laufen. Versuche zu starten...${NC}" + + # Versuche Docker zu starten + if command -v systemctl &>/dev/null; then + sudo systemctl start docker || true + sleep 5 + elif command -v service &>/dev/null; then + sudo service docker start || true + sleep 5 + fi + + # Prüfe erneut, ob Docker jetzt läuft + if ! docker info &>/dev/null; then + error_log "Docker-Daemon konnte nicht gestartet werden." + log "Führen Sie vor der Installation bitte folgende Befehle aus:" + log " sudo systemctl start docker" + log " sudo systemctl enable docker" + log "Starten Sie dann das Installationsskript erneut." + exit 1 + fi +fi + +# Docker-Rechte prüfen +if ! docker ps &>/dev/null; then + error_log "Sie haben keine Berechtigung, Docker ohne sudo zu verwenden." + log "Bitte führen Sie folgenden Befehl aus und melden Sie sich danach neu an:" + log " sudo usermod -aG docker $USER" + exit 1 +fi + +# Prüfen, ob erforderliche Basis-Images lokal verfügbar sind +if ! docker image inspect node:lts-alpine &>/dev/null; then + log "${YELLOW}Basis-Image wird gedownloaded, dies kann einige Zeit dauern...${NC}" + if ! docker pull node:lts-alpine; then + error_log "Konnte Basis-Image nicht herunterladen." + log "Prüfen Sie Ihre Internetverbindung oder verwenden Sie ein bereits vorhandenes Image." + exit 1 + fi +fi + # Erhöhe Docker-Timeout für langsame Verbindungen und Raspberry Pi -export DOCKER_CLIENT_TIMEOUT=120 -export COMPOSE_HTTP_TIMEOUT=120 +export DOCKER_CLIENT_TIMEOUT=300 +export COMPOSE_HTTP_TIMEOUT=300 # Verwende die richtige Docker Compose Version if [ "${DOCKER_COMPOSE_V2:-false}" = true ]; then # Docker Compose V2 Plugin (docker compose) - log "Baue lokales Image (ohne Pull-Versuch)..." - if ! docker compose build --no-cache --pull=false; then + log "Baue lokales Image..." + if ! docker compose build --no-cache; then error_log "Docker Compose Build (v2) fehlgeschlagen. Versuche mit v1 Format..." - if ! docker-compose build --no-cache --pull=false; then + if ! docker-compose build --no-cache; then error_log "Docker Compose Build fehlgeschlagen. Siehe Fehlermeldung oben." exit 1 fi @@ -355,8 +397,8 @@ if [ "${DOCKER_COMPOSE_V2:-false}" = true ]; then fi else # Docker Compose V1 (docker-compose) - log "Baue lokales Image (ohne Pull-Versuch)..." - if ! docker-compose build --no-cache --pull=false; then + log "Baue lokales Image..." + if ! docker-compose build --no-cache; then error_log "Docker Compose Build fehlgeschlagen. Siehe Fehlermeldung oben." exit 1 fi