Fix: Verbesserte Docker Login-Behandlung für HTTP-Registries

- Prüft HTTPS-Fehler und gibt Hinweise
- Versucht Login erneut falls HTTPS-Probleme erkannt werden
This commit is contained in:
2025-10-31 18:19:50 +01:00
parent 3c28dbfbe8
commit a8f1735f29

View File

@@ -253,10 +253,26 @@ jobs:
# Docker benötigt möglicherweise insecure-registry Konfiguration für HTTP # Docker benötigt möglicherweise insecure-registry Konfiguration für HTTP
echo " Versuche Docker Login..." 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 # Führe Login aus und sammle Output UND Exit-Code
set +e # Erlaube Fehler während Login-Versuch 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_OUTPUT=$(echo "$REGISTRY_PASSWORD" | docker login "$TEST_URL" -u "$REGISTRY_USER" --password-stdin 2>&1)
LOGIN_EXIT_CODE=$? 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 set -e # Zurück zu strict mode
echo " Login-Exit-Code: $LOGIN_EXIT_CODE" echo " Login-Exit-Code: $LOGIN_EXIT_CODE"