Skill: Lokale OCI-Registry
Zweck
Starten und Verwalten einer lokalen OCI-Registry für die Entwicklung. Dies ermöglicht das lokale Bauen und Veröffentlichen von Kits ohne Zugriff auf eine externe Registry.
Wann verwenden
- Entwicklung von Änderungen an Kits, die von Varianten konsumiert werden sollen
- Testen von Kit-Änderungen vor der Veröffentlichung in Produktions-Registries
- Arbeiten offline oder in isolierten Umgebungen
Voraussetzungen
- Docker installiert und läuft
- Arbeiten innerhalb eines Grove-Verzeichnisses
Vorgehen
Registry starten
brdev registry start
Dies bewirkt:
- Start einer lokalen Docker-Registry auf
localhost:5000 - Konfiguration der Persistenz (Registry-Daten überleben Neustarts)
- Warten, bis die Registry fehlerfrei läuft, bevor die Kontrolle zurückgegeben wird
- Ausgabe der Registry-URL zur Verwendung in Builds
Überprüfen, ob die Registry läuft
brdev registry status
Gibt Exit-Code 0 zurück, wenn sie läuft, andernfalls einen Wert ungleich 0.
Registry-URL abrufen
brdev registry url
Gibt localhost:{port} für das aktuelle Grove aus. Verwenden Sie dies in Skripten anstatt fest codierter Ports.
Registry-Logs anzeigen
brdev registry logs
Um Logs in Echtzeit zu verfolgen:
brdev registry logs --follow
Registry stoppen
brdev registry stop
Hinweis: Dabei bleibt das Daten-Volume der Registry erhalten.
Registry-Daten bereinigen
brdev registry clean
Dies entfernt sowohl den Container als auch das Daten-Volume.
Konfiguration
brdev verwendet Umgebungsvariablen für die Konfiguration. Erstellen Sie eine .env-Datei im Forest-Stammverzeichnis oder setzen Sie Umgebungsvariablen:
# Benutzerdefiniertes Image (Standard: registry:2)
BRDEV_REGISTRY_IMAGE=registry:2.8
Hinweis: Container- und Volume-Namen werden automatisch aus dem Grove-Namen abgeleitet: brdev-registry-{grove} und brdev-registry-data-{grove}. Der Port wird automatisch aus einem Hash des Grove-Namens ermittelt (Bereich 5001–5999).
Validierung
Nach dem Starten der Registry:
brdev registry list
Sollte Folgendes zurückgeben: {"repositories":[]}
Häufige Probleme
Docker nicht installiert:
Fehler: Docker ist nicht installiert oder nicht im PATH. Installieren Sie Docker und stellen Sie sicher, dass es im PATH ist.
Lösung: Docker installieren und in den PATH aufnehmen.
Docker-Daemon läuft nicht:
Fehler: Docker-Daemon läuft nicht. Starten Sie Docker mit: sudo systemctl start docker
Lösung: Docker-Daemon starten.
Port bereits belegt:
Fehler: Container konnte nicht gestartet werden. Der Port ist möglicherweise bereits belegt.
Lösung:
- Prüfen Sie auf vorhandene Registry:
docker ps | grep registry - Stoppen Sie den in Konflikt stehenden Container:
docker stop <container-id> - Oder verwenden Sie einen benutzerdefinierten Port über
FORESTER_REGISTRY_PORT
Zugriff verweigert:
- Stellen Sie sicher, dass der Benutzer in der Docker-Gruppe ist:
groups | grep docker - Benutzer zur Docker-Gruppe hinzufügen:
sudo usermod -aG docker $USER - Nach dem Hinzufügen zur Gruppe muss die Shell möglicherweise neu gestartet werden
Verwandte Skills
build-kit-locally– Verwendet die lokale Registry, um gebaute Kits zu veröffentlichenbuild-variant-from-local-kits– Konfiguriert Varianten-Builds zur Verwendung der lokalen Registry
Siehe auch
Konfigurationsbefehle für die Nutzung der lokalen Registry:
Zum Veröffentlichen von Kits:
brdev twoliter use-local-publish– ErstelltInfra.tomlfür die Veröffentlichung in der lokalen Registrybrdev twoliter use-upstream-publish– EntferntInfra.toml
Zum Abrufen von Kits:
brdev twoliter use-local-deps– ErstelltTwoliter.overridezum Abrufen aus der lokalen Registrybrdev twoliter use-upstream-deps– EntferntTwoliter.override
Beide (bequem):
brdev twoliter use-local– Erstellt beide Dateienbrdev twoliter use-upstream– Entfernt beide Dateien
Beim Abrufen muss in Twoliter.toml für bestimmte Kits, die Sie aus der lokalen Registry beziehen möchten, auch vendor = "local" gesetzt werden.