Communityコーディング&開発github.com

ローカルレジストリ

Bottlerocket キット開発のためのローカル OCI レジストリを起動および管理します。

ローカルレジストリ とは?

このスキルは、Bottlerocket キットの開発において、ローカル環境で OCI レジストリを起動・管理するためのものです。主に `brdev` コマンドラインツールを使用して、Docker コンテナとしてレジストリを実行します。これにより、外部のレジストリにアクセスすることなく、キットのビルドや公開をローカルで完結できるため、開発の反復速度が向上し、オフライン環境や隔離環境でも作業が可能になります。このスキルは、`brdev registry start`、`stop`、`status`、`url`、`logs`、`clean` といった一連のコマンドを提供し、レジストリのライフサイクル全体をカバーします。また、環境変数によるカスタマイズ(例:`BRDEV_REGISTRY_IMAGE`)や、ポートの自動割り当て(グローブ名のハッシュに基づく 5001~5999)などの設定も可能です。さらに、`build-kit-locally` や `build-variant-from-local-kits` などの関連スキルと組み合わせて使用することで、ローカルキット開発のワークフロー全体を効率化します。

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

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

スキル: ローカル OCI レジストリ

目的

開発用にローカル OCI レジストリを起動および管理します。これにより、外部のレジストリにアクセスすることなく、ローカルでキットをビルドおよび公開できます。

使用すべき状況

  • バリアントで使用する必要があるキットの変更を開発している場合
  • 本番レジストリに公開する前にキットの変更をテストする場合
  • オフラインまたは隔離された環境で作業する場合

前提条件

  • Docker がインストールされ、実行中であること
  • grove ディレクトリ内で作業していること

手順

レジストリの起動

brdev registry start

これにより、以下の処理が行われます:

  • localhost:5000 でローカル Docker レジストリを起動
  • 永続化を設定(レジストリデータは再起動後も保持)
  • レジストリが正常になるまで待機してから制御を戻す
  • ビルドで使用するレジストリ URL を出力

レジストリの状態確認

brdev registry status

実行中であれば終了コード 0、そうでなければ非ゼロを返します。

レジストリ URL の取得

brdev registry url

現在の grove に対して localhost:{port} を出力します。スクリプトでポートをハードコードする代わりにこれを使用してください。

レジストリログの表示

brdev registry logs

リアルタイムでログを追跡するには:

brdev registry logs --follow

レジストリの停止

brdev registry stop

注: これによりレジストリのデータボリュームは保持されます。

レジストリデータのクリーンアップ

brdev registry clean

これにより、コンテナとデータボリュームの両方が削除されます。

設定

brdev は環境変数を使用して設定を行います。フォレストルートに .env ファイルを作成するか、環境変数を設定してください:

# カスタムイメージ (デフォルト: registry:2)
BRDEV_REGISTRY_IMAGE=registry:2.8

注: コンテナ名とボリューム名は、grove 名から自動的に brdev-registry-{grove} および brdev-registry-data-{grove} として生成されます。ポートは grove 名のハッシュから自動的に決定されます(範囲 5001-5999)。

検証

レジストリの起動後:

brdev registry list

次の結果が返されるはずです: {"repositories":[]}

よくある問題

Docker がインストールされていない:

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

解決策: Docker をインストールし、PATH に追加してください。

Docker デーモンが実行されていない:

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

解決策: Docker デーモンを起動してください。

ポートが既に使用中:

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

解決策:

  • 既存のレジストリを確認: docker ps | grep registry
  • 競合するコンテナを停止: docker stop <container-id>
  • または FORESTER_REGISTRY_PORT を使用してカスタムポートを設定

権限が拒否された:

  • ユーザーが docker グループに属しているか確認: groups | grep docker
  • ユーザーを docker グループに追加: sudo usermod -aG docker $USER
  • グループ追加後、シェルを再起動する必要がある場合があります

関連スキル

  • build-kit-locally - ローカルレジストリを使用してビルド済みキットを公開
  • build-variant-from-local-kits - ローカルレジストリを使用するようにバリアントビルドを設定

関連情報

ローカルレジストリ使用のための設定コマンド:

キットの公開用:

  • brdev twoliter use-local-publish - ローカルレジストリへの公開用 Infra.toml を作成
  • brdev twoliter use-upstream-publish - Infra.toml を削除

キットの取得用:

  • brdev twoliter use-local-deps - ローカルレジストリからの取得用 Twoliter.override を作成
  • brdev twoliter use-upstream-deps - Twoliter.override を削除

両方(便利コマンド):

  • brdev twoliter use-local - 両方のファイルを作成
  • brdev twoliter use-upstream - 両方のファイルを削除

取得時には、ローカルレジストリから取得したい特定のキットについて、Twoliter.toml で vendor = "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

関連スキル