CommunityCodierung & Entwicklunggithub.com

local-registry

Starten und Verwalten einer lokalen OCI-Registry für die Bottlerocket-Kit-Entwicklung.

Was ist local-registry?

Diese Skill-Anleitung beschreibt, wie ein lokaler OCI-Registry-Container für die Entwicklung von Bottlerocket-Kits gestartet und verwaltet wird. Sie ermöglicht es Entwicklern, Kits lokal zu bauen und zu veröffentlichen, ohne auf eine externe Registry zugreifen zu müssen. Der Skill wird über das `brdev`-Tool bedient und unterstützt Docker als Laufzeitumgebung. Die Registry läuft auf `localhost:5000`, Ports werden automatisch aus dem Grove-Namen abgeleitet. Enthalten sind Befehle zum Starten, Stoppen, Prüfen, Loggen und Bereinigen der Registry sowie Konfigurationsmöglichkeiten via Umgebungsvariablen. Fehlerbehandlung und Verweise auf verwandte Skills wie `build-kit-locally` runden die Anleitung ab.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/local-registry

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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öffentlichen
  • build-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 – Erstellt Infra.toml für die Veröffentlichung in der lokalen Registry
  • brdev twoliter use-upstream-publish – Entfernt Infra.toml

Zum Abrufen von Kits:

  • brdev twoliter use-local-deps – Erstellt Twoliter.override zum Abrufen aus der lokalen Registry
  • brdev twoliter use-upstream-deps – Entfernt Twoliter.override

Beide (bequem):

  • brdev twoliter use-local – Erstellt beide Dateien
  • brdev 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.

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

ad-hoc-implementation-plan

Transform a rough plan into implement-commit ready artifacts. Allows rigorous review while implementing.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-requirements

Create or update feature requirements specification using EARS notation with examples and appendices

propose-feature-test-plan

Create a test plan mapping EARS requirements and Critical Constraints to specific tests

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-code

Deep code review generating PR comments via principled question-driven analysis

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

review-style

Verify code follows project style guides without providing improvement suggestions

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

Verwandte Skills