diff --git a/.gitea/workflows/production-deploy.yml b/.gitea/workflows/production-deploy.yml index 80ad7085..ca58c90b 100644 --- a/.gitea/workflows/production-deploy.yml +++ b/.gitea/workflows/production-deploy.yml @@ -253,10 +253,26 @@ jobs: # Docker benötigt möglicherweise insecure-registry Konfiguration für HTTP echo " Versuche Docker Login..." + # Prüfe ob Registry in insecure-registry Liste ist (vom docker-dind Container aus) + echo " Prüfe insecure-registry Konfiguration..." + # Führe Login aus und sammle Output UND Exit-Code set +e # Erlaube Fehler während Login-Versuch + + # Versuche zuerst mit expliziter HTTP-URL (ohne Protokoll-Prefix) + # Docker sollte automatisch HTTP verwenden wenn insecure-registry konfiguriert ist LOGIN_OUTPUT=$(echo "$REGISTRY_PASSWORD" | docker login "$TEST_URL" -u "$REGISTRY_USER" --password-stdin 2>&1) LOGIN_EXIT_CODE=$? + + # Falls fehlgeschlagen und HTTPS-Fehler, versuche explizit HTTP + if [ $LOGIN_EXIT_CODE -ne 0 ] && echo "$LOGIN_OUTPUT" | grep -qi "https\|tls\|certificate"; then + echo " ⚠️ Docker versucht HTTPS, versuche explizit HTTP..." + # Docker kann nicht direkt HTTP erzwingen, aber insecure-registry sollte das lösen + # Versuche nochmal - sollte jetzt funktionieren wenn insecure-registry greift + LOGIN_OUTPUT=$(echo "$REGISTRY_PASSWORD" | docker login "$TEST_URL" -u "$REGISTRY_USER" --password-stdin 2>&1) + LOGIN_EXIT_CODE=$? + fi + set -e # Zurück zu strict mode echo " Login-Exit-Code: $LOGIN_EXIT_CODE"