Files
michaelschiemer/docs/deployment/test-registry-credentials.md
Michael Schiemer 16d586ecdf chore: Update deployment configuration and documentation
- Update Gitea configuration (remove DEFAULT_ACTIONS_URL)
- Fix deployment documentation
- Update Ansible playbooks
- Clean up deprecated files
- Add new deployment scripts and templates
2025-10-31 21:11:11 +01:00

4.8 KiB
Raw Blame History

Docker Registry Credentials Testen

Dieses Dokument erklärt, wie du die Docker Registry Credentials testen kannst.

Lokales Testen

Voraussetzungen

  1. Docker muss installiert und laufend sein
  2. 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-registry Konfiguration 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:

  1. Gehe zu: ActionsTest Registry Credentials
  2. Klicke auf Run workflow
  3. 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:

  1. Prüfe REGISTRY_USER - sollte admin sein (oder der richtige Username)
  2. Prüfe REGISTRY_PASSWORD - muss mit dem Passwort in deployment/stacks/registry/auth/htpasswd übereinstimmen
  3. Prüfe Gitea Secrets:
    • Repository → Settings → Secrets
    • Stelle sicher, dass REGISTRY_USER und REGISTRY_PASSWORD korrekt 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-registry konfiguriert 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:

  1. Prüfe Traefik Labels in deployment/stacks/registry/docker-compose.yml
  2. Prüfe ob Registry im traefik-public Netzwerk ist
  3. 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_PASSWORD mit 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.