スキル: キットのビルドと公開(ローカル)
目的
Bottlerocket のキット(core-kit または kernel-kit)をビルドし、ローカルの OCI レジストリに公開して開発テストと検証を行います。これにより、プロダクションレジストリに公開することなく、バリアントビルドでキットの変更をテストできます。
使用すべきタイミング
- キットパッケージに変更を加え、それをバリアントでテストする場合
- キットの反復的な開発を行う場合
- キットの変更に依存するバリアントイメージをビルドする前
前提条件
- Docker がインストールされ、実行中であること
- grove ディレクトリ内で作業していること
- キットリポジトリが
kits/ディレクトリにクローンされていること
手順
1. ローカルレジストリを起動する
brdev registry start
2. ローカルレジストリ用に設定する
cd kits/<kit-name>
brdev twoliter use-local-publish
これにより、公開先をローカルレジストリに向けた Infra.toml が作成されます。
3. キットをビルドする
make build
特定のアーキテクチャ向けにビルドする場合:
make build ARCH=x86_64
# または
make build ARCH=aarch64
4. ローカルレジストリに公開する
make publish VENDOR=local
これにより、キットがベンダープレフィックス "local" で localhost:5000 に公開されます。
5. 公開を確認する
brdev registry list
リポジトリ一覧にキットが表示されるはずです。
検証
キットが利用可能であることを確認します:
brdev registry list
公開されたバージョンタグが返されるはずです。
よくある問題
レジストリが起動していない:
Error: connection refused
解決策: brdev registry start を実行してください。
Infra.toml が設定されていない:
Error: vendor 'local' not found
解決策: brdev twoliter use-local-publish を実行して設定を作成してください。
Docker の権限エラー: 解決策: ユーザーが docker グループに属していること、および Docker デーモンが実行中であることを確認してください。
次のステップ
キットを公開した後:
- バリアントの
Twoliter.tomlを更新して新しいキットバージョンを参照する - バリアントリポジトリで
make updateを実行する cargo makeでバリアントをビルドする