local-registry

Inicie e gerencie um registro OCI local para o desenvolvimento de kits Bottlerocket.

O que é local-registry?

Esta habilidade gerencia um registro OCI (Open Container Initiative) local para desenvolvimento de kits Bottlerocket. Ela permite construir e publicar kits localmente sem exigir acesso a um registro externo, o que é útil para testar mudanças em kits, trabalhar offline ou em ambientes isolados. A habilidade utiliza o Docker para iniciar um registro local na porta 5000, com persistência de dados e verificação de funcionamento. Comandos como `brdev registry start`, `stop`, `status`, `logs`, `url`, `clean` e `list` fornecem controle completo sobre o ciclo de vida do registro. Ela também oferece integração com outras habilidades relacionadas, como `build-kit-locally` e `build-variant-from-local-kits`, além de comandos para configurar a publicação e busca de kits no registro local via `brdev twoliter`.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Habilidade: Registro OCI Local

Propósito

Iniciar e gerenciar um registro OCI local para desenvolvimento. Isso permite construir e publicar kits localmente sem exigir acesso a um registro externo.

Quando Usar

  • Desenvolvendo alterações em kits que precisam ser consumidos por variantes
  • Testando alterações em kits antes de publicar em registros de produção
  • Trabalhando offline ou em ambientes isolados

Pré-requisitos

  • Docker instalado e em execução
  • Trabalhando dentro de um diretório grove

Procedimento

Iniciar o registro

brdev registry start

Isso irá:

  • Iniciar um registro Docker local em localhost:5000
  • Configurar persistência (os dados do registro sobrevivem a reinicializações)
  • Aguardar até que o registro esteja saudável antes de retornar
  • Exibir a URL do registro para uso em builds

Verificar se o registro está em execução

brdev registry status

Retorna código de saída 0 se estiver em execução, não zero caso contrário.

Obter URL do registro

brdev registry url

Exibe localhost:{porta} para o grove atual. Use isso em scripts em vez de codificar as portas.

Visualizar logs do registro

brdev registry logs

Para seguir os logs em tempo real:

brdev registry logs --follow

Parar o registro

brdev registry stop

Nota: Isso preserva o volume de dados do registro.

Limpar dados do registro

brdev registry clean

Isso remove tanto o contêiner quanto o volume de dados.

Configuração

O brdev usa variáveis de ambiente para configuração. Crie um arquivo .env na raiz da forest ou defina variáveis de ambiente:

# Imagem personalizada (padrão: registry:2)
BRDEV_REGISTRY_IMAGE=registry:2.8

Nota: Os nomes do contêiner e do volume são derivados automaticamente do nome do grove como brdev-registry-{grove} e brdev-registry-data-{grove}. A porta é derivada automaticamente de um hash do nome do grove (faixa 5001-5999).

Validação

Após iniciar o registro:

brdev registry list

Deve retornar: {"repositories":[]}

Problemas Comuns

Docker não instalado:

Error: Docker is not installed or not in PATH. Install Docker and ensure it's in your PATH

Solução: Instale o Docker e certifique-se de que ele esteja no PATH.

Daemon do Docker não está em execução:

Error: Docker daemon is not running. Start Docker with: sudo systemctl start docker

Solução: Inicie o daemon do Docker.

Porta já em uso:

Error: Failed to start container. The port may already be in use

Solução:

  • Verifique se há um registro existente: docker ps | grep registry
  • Pare o contêiner conflitante: docker stop <id-do-container>
  • Ou use uma porta personalizada via FORESTER_REGISTRY_PORT

Permissão negada:

  • Certifique-se de que o usuário está no grupo docker: groups | grep docker
  • Adicione o usuário ao grupo docker: sudo usermod -aG docker $USER
  • Pode ser necessário reiniciar o shell após adicionar ao grupo

Habilidades Relacionadas

  • build-kit-locally - Usa o registro local para publicar kits construídos
  • build-variant-from-local-kits - Configura builds de variantes para usar o registro local

Veja Também

Comandos de configuração para uso do registro local:

Para publicar kits:

  • brdev twoliter use-local-publish - Cria Infra.toml para publicar no registro local
  • brdev twoliter use-upstream-publish - Remove Infra.toml

Para buscar kits:

  • brdev twoliter use-local-deps - Cria Twoliter.override para buscar do registro local
  • brdev twoliter use-upstream-deps - Remove Twoliter.override

Ambos (conveniência):

  • brdev twoliter use-local - Cria ambos os arquivos
  • brdev twoliter use-upstream - Remove ambos os arquivos

Ao buscar, também defina vendor = "local" em Twoliter.toml para kits específicos que você deseja do registro local.

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

Habilidades Relacionadas