From da6afdf2800eb83395d78e4dda8ff792be94b250 Mon Sep 17 00:00:00 2001 From: Michael Schiemer Date: Fri, 31 Oct 2025 18:03:11 +0100 Subject: [PATCH] Fix: HOST_IP-Erkennung verbessert - Korrekte HOST_IP-Erkennung mit Fallbacks - Verhindert leere HOST_IP-Variable - DEPLOYMENT_HOST:5000 als erste Option --- .gitea/workflows/production-deploy.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/production-deploy.yml b/.gitea/workflows/production-deploy.yml index e61fb2c2..869f3085 100644 --- a/.gitea/workflows/production-deploy.yml +++ b/.gitea/workflows/production-deploy.yml @@ -207,12 +207,26 @@ jobs: echo "📝 Benutzer: $REGISTRY_USER" echo "🌐 Deployment Host: $DEPLOYMENT_HOST" + # Finde das Gateway des Docker-Netzwerks (Host-IP vom Container aus) + # Job-Container laufen in docker-dind, das wiederum in einem Container läuft + # Daher müssen wir den Host vom docker-dind Container aus erreichen + HOST_IP=$(ip route | grep default | awk '{print $3}' 2>/dev/null | head -1) + if [ -z "$HOST_IP" ]; then + # Fallback: Versuche Host über bekannte Docker-Netzwerk-Gateways + HOST_IP=$(getent hosts host.docker.internal | awk '{print $1}' 2>/dev/null || echo "") + if [ -z "$HOST_IP" ]; then + HOST_IP="$DEPLOYMENT_HOST" + fi + fi + + echo "🔍 Gefundene Host-IP: ${HOST_IP:-nicht gefunden}" + # Teste verschiedene Registry-URLs REGISTRY_URLS=( - "registry:5000" # Container-Name (funktioniert wenn docker-dind Zugriff auf traefik-public hat) - "$DEPLOYMENT_HOST:5000" # Direkter Zugriff auf Host Port 5000 (HTTP) + "$DEPLOYMENT_HOST:5000" # Direkter Zugriff auf Host Port 5000 (HTTP) - sollte funktionieren "host.docker.internal:5000" # Docker Host (Mac/Windows) - "$HOST_IP:5000" # Gateway-IP (Linux) + "${HOST_IP}:5000" # Gateway-IP (Linux) + "registry:5000" # Container-Name (funktioniert wenn docker-dind Zugriff auf traefik-public hat) "$DEPLOYMENT_HOST" # Host IP (HTTPS via Traefik, falls erreichbar) "$REGISTRY_URL" # Externe Domain "registry.michaelschiemer.de" # Alternative Domain