- Update Gitea configuration (remove DEFAULT_ACTIONS_URL) - Fix deployment documentation - Update Ansible playbooks - Clean up deprecated files - Add new deployment scripts and templates
4.8 KiB
4.8 KiB
Docker Registry Credentials Testen
Dieses Dokument erklärt, wie du die Docker Registry Credentials testen kannst.
Lokales Testen
Voraussetzungen
- Docker muss installiert und laufend sein
- Curl muss verfügbar sein (wird automatisch installiert falls fehlend)
Verwendung
# Setze die Credentials als Environment-Variablen
export REGISTRY_USER="admin"
export REGISTRY_PASSWORD="dein-registry-passwort"
# Führe das Test-Script aus
./scripts/test-registry-credentials.sh
Mit expliziten Werten
REGISTRY_USER="admin" \
REGISTRY_PASSWORD="dein-passwort" \
REGISTRY_DOMAIN="registry.michaelschiemer.de" \
REGISTRY_HOST="94.16.110.151" \
REGISTRY_PORT="5000" \
./scripts/test-registry-credentials.sh
Was wird getestet?
Das Script führt folgende Tests durch:
1. HTTP Connectivity
- Testet ob die Registry über HTTP erreichbar ist (
http://94.16.110.151:5000) - Erwartet Status 401 (Auth erforderlich) oder 200
2. HTTPS Connectivity
- Testet ob die Registry über HTTPS erreichbar ist (
https://registry.michaelschiemer.de) - Erwartet Status 401 (Auth erforderlich) oder 200
3. Docker Login über HTTP
- Versucht Docker Login über HTTP
- Benötigt
insecure-registryKonfiguration im Docker-daemon
4. Docker Login über HTTPS
- Versucht Docker Login über HTTPS
- Keine zusätzliche Konfiguration nötig (empfohlen)
5. Registry API Zugriff
- Testet ob die Registry API funktioniert
- Listet verfügbare Repositories auf
Test in CI/CD
Via Gitea Workflow
Das Script kann auch in einem Gitea Workflow verwendet werden:
- name: Test Registry Credentials
shell: bash
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
./scripts/test-registry-credentials.sh
Workflow ausführen
Es gibt einen dedizierten Workflow .gitea/workflows/test-registry.yml:
- Gehe zu: Actions → Test Registry Credentials
- Klicke auf Run workflow
- Der Workflow testet automatisch die Credentials aus Gitea Secrets
Troubleshooting
Problem: "REGISTRY_PASSWORD ist nicht gesetzt"
Lösung:
export REGISTRY_PASSWORD="dein-passwort"
Problem: "Unauthorized (401)" beim Login
Ursache: Falsche Credentials
Lösung:
- Prüfe
REGISTRY_USER- sollteadminsein (oder der richtige Username) - Prüfe
REGISTRY_PASSWORD- muss mit dem Passwort indeployment/stacks/registry/auth/htpasswdübereinstimmen - Prüfe Gitea Secrets:
- Repository → Settings → Secrets
- Stelle sicher, dass
REGISTRY_USERundREGISTRY_PASSWORDkorrekt sind
Problem: "HTTP response to HTTPS client"
Ursache: Docker versucht HTTPS, aber Registry läuft auf HTTP
Lösung:
- Für HTTP: Docker-daemon muss mit
--insecure-registrykonfiguriert werden - Oder verwende HTTPS-Zugriff über
registry.michaelschiemer.de(empfohlen)
Problem: "Registry nicht erreichbar"
Ursache: Registry läuft nicht oder Netzwerk-Problem
Lösung:
# Prüfe ob Registry läuft
docker ps | grep registry
# Prüfe Registry-Logs
docker logs registry
# Prüfe Netzwerk
curl -v http://94.16.110.151:5000/v2/
Problem: "404" bei HTTPS
Ursache: Traefik-Routing ist nicht richtig konfiguriert
Lösung:
- Prüfe Traefik Labels in
deployment/stacks/registry/docker-compose.yml - Prüfe ob Registry im
traefik-publicNetzwerk ist - Prüfe DNS-Konfiguration für
registry.michaelschiemer.de
Passwort prüfen/ändern
Passwort auf dem Server prüfen
ssh deploy@94.16.110.151
cd ~/deployment/stacks/registry
cat auth/htpasswd
Neues Passwort setzen
ssh deploy@94.16.110.151
cd ~/deployment/stacks/registry
# Neues Passwort setzen
htpasswd -B auth/htpasswd admin
# Registry neu starten
docker compose restart registry
Dann in Gitea Secrets aktualisieren:
- Repository → Settings → Secrets
REGISTRY_PASSWORDmit neuem Passwort aktualisieren
Script-Output
Erfolgreich
✅ Docker ist verfügbar
✅ curl ist verfügbar
✅ Registry erreichbar über HTTPS (Status: 401 - Auth erforderlich, das ist gut!)
✅ Docker Login erfolgreich!
✅ Credentials sind korrekt und funktionieren!
Fehlgeschlagen
❌ Docker Login fehlgeschlagen (Exit Code: 1)
⚠️ Fehler: Unauthorized (401)
ℹ️ Die Credentials sind falsch:
ℹ️ - Username: admin
ℹ️ - Password Länge: 24 Zeichen
Integration in CI/CD
Das Script kann in jedem Workflow-Step verwendet werden:
- name: Verify Registry Access
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
./scripts/test-registry-credentials.sh
Falls das Script fehlschlägt (Exit Code 1), wird der Workflow gestoppt und du bekommst klare Fehlermeldungen.