メインコンテンツにスキップ

寄稿

CubeCOSへの貢献にご関心をお寄せいただき、ありがとうございます。 地域コミュニティのための開放的な空間を作るため、本資料に記載されているガイドラインをよくお読みいただき、それに従っていただくようお願いいたします。

行動規範​

私たちは、行動規範に基づき、前向きなコミュニティの維持に努めています。

お問い合わせは、[email protected]までお願いいたします。

前提条件​

GitHub アカウントを作成する​

まだGitHubのアカウントをお持ちでない場合は、作成してください。

Git コミットの署名の設定​

Gitのコミット署名とは、暗号署名(GPGまたはSSH鍵)を用いてコミットの作成者の真正性を検証するプロセスであり、そのコミットが信頼できる人物によって作成され、改ざんされていないことを保証するものです。 セキュリティを確保し、開発者の発行元証明書による承認を検証するため、貢献者にはコミットに署名することを義務付けています。 Git コミットの署名 の設定

貢献の方法​

以下の形式での投稿を歓迎いたします:

  • 新機能
  • バグの修正または機能の強化
  • 問題の優先順位付け
  • ドキュメント
  • SlackやDiscordでの質問への回答
  • 広報・ソーシャルメディア・ブログ記事

セキュリティに関する問題は、イシュートラッカーやプルリクエストで報告しないでください。 報告方法やお問い合わせについては、当社のセキュリティポリシーに従ってください。

コミットに署名してください​

当プロジェクトでは、Developer Origin Certificate v1.1 を採用し、貢献が適切に承認され、オープンソースの標準に準拠していることを保証しています。

Gitのコミット署名(sign-off)とは、開発者原産地証明書(DCO)を遵守していることを表明するものであり、コミットメッセージに Signed-off-by: 行を追加することで、その変更の作者であるか、あるいはその変更を貢献する許可を得ていることを確認するものです。

コミットメッセージに以下の内容を追加して、承認を行います。 署名には、そのコミットに関連付けられているGitユーザーおよびメールアドレスと一致する情報を記載する必要があります。

This is my commit message

Signed-off-by: Your Name <[email protected]>

Git では、--signoff (-s) オプションを指定することで、DCO が自動的に実行されます。

git commit -s -m "Description of the commit"

開発​

この開発環境では、CubeCOSをコンテナ化されたインスタンスで実行しており、安定して動作させるにはかなりのメモリリソースが必要となります。 以下の仕様は、開発環境のソフトウェアおよびハードウェア要件にのみ適用されます。

本番環境への導入およびCubeCOSのセットアップに関する詳細については、CubeCOSドキュメントのインストールセクションを参照してください。

ハードウェア要件​

  • CPU
    • アーキテクチャ:x86_64
    • 8C/16Tコア、2.0 GHz以上
    • ハードウェア仮想化のサポート(Intel VT-x/AMD-Vのサポート)
  • メモリ
    • 最小: 64 GiB
  • ディスク
    • 最低要件:500 GiB の空き容量

ソフトウェア要件​

  • ホストオペレーティングシステム
    • CentOS 8
    • CentOS Stream 8
    • CentOS Stream 9
  • Git
  • Git LFS
  • Docker (docker-ce)

コードをクローンする​

すべてのサブモジュールを含めるには、再帰フラグを指定してリポジトリをクローンしてください。

git clone --recursive [email protected]:bigstack-oss/cubecos.git

アーティファクトのビルド​

  1. 刑務所を作成して入所する

    デフォルトのプロジェクト名は centos9-jail です。ビルド処理により、CubeCOS リポジトリと同じパスに、このデフォルトのプロジェクト名を持つ新しいフォルダが作成されます。

    デフォルトのプロジェクト名でビルドを行い、ビルドされたコンテナにアクセスするには、次のように実行します:

    cd cubecos
    make centos9-jail enter

    複数のデプロイストリームやテストシナリオで役立つ、カスタムプロジェクト名を使用してビルドするには:

    cd cubecos
    make PROJECT=your-project-name centos9-jail enter

    PROJECT名が指定されていない場合、ビルドはデフォルトでcentos9-jailとなり、その名前でビルドディレクトリとコンテナの両方が作成されます。

    jailが作成されると、親パス下に2つのディレクトリが表示されます:

    • cubecos/ – メインのソースリポジトリ
    • centos9-jail/(または独自のプロジェクト名) – 隔離されたビルド環境
    build-bench > ls ..
    cubecos centos9-jail

    make PROJECT=example centos9-jail を実行すると、「example」という名前の新しいビルド・ジェイルが作成されます。 対応するビルドフォルダも「example」という名前になり、cubecosフォルダの親ディレクトリ内に作成されます。

    make PROJECT=example centos9-jail を実行すると、example という名前の別のジェイルが作成され、ビルドフォルダは cubecos フォルダの親ディレクトリ配下の example になります。

    cubecos> ls ..
    cubecos centos9-jail example

    コマンド make enter を使用すると、デフォルトのビルド・ジェイル centos9-jail に移動できます。 あるいは、make PROJECT=example enter と実行すると、ビルド・ジェイル example に入ることができます。

  2. ビルドパラメータを指定して、さまざまなCubeCOSインストールメディアを構築します。

    build コマンドは、CubeCOS のビルド・ジェイル内でのみ実行できます。 CubeCOSのインストールメディアを生成する前に、jailを作成してその中に移動するか、既存のjailに移動してください。 build コマンドでは、以下の種類のインストールメディアを作成できます:

    1. full: サポートされているすべてのCubeCOSインストールメディア(ISO、USB、PXE、およびパッケージファイル)を生成します。
    2. pxe: PXEサーバーを介してシステムをプロビジョニングするためのネットワークブートファイルを生成します。
    3. pxeserver: ネットワークブート用ファイルをホストするための完全なPXEサーバーイメージを構築します。
    4. pxeserveriso: PXE サーバーイメージの ISO 版を作成します。
    5. usb: USBドライブを介した物理インストール用のUSBブートイメージを作成します。
    6. iso: 仮想メディアとして使用するISOイメージを生成します。
    7. liveusb: インストールせずにCubeCOSを直接実行するためのライブUSBイメージを作成します。
    # all installation types
    [root@centos9-jail centos9-jail]# make full

    # network boot
    [root@centos9-jail centos9-jail]# make pxe

    # usb media
    [root@centos9-jail centos9-jail]# make usb

    # iso generation
    [root@centos9-jail centos9-jail]# make iso
  3. 遺物を特定する

    ビルドアーティファクトは、ビルドフォルダ内の core/main/ship ディレクトリにある可能性があります。

    • CUBE_XXX.img:USBインストーラー
      • dd bs=4M if=<img_file_path> of=<usb_device_name> status=progress oflag=sync を使用して、USBメモリに書き込んでください。
      • USBメモリを使ってサーバーを起動する
      • ログインしてCubeCOSの設定を復元するの手順に従って、システムパーティションのフラッシュを行ってください。
    • CUBE_XXX.iso: CubeCOS ISO
    • CUBE_XXX.pkg: CubeCOS ファイルシステムアーカイブ
    • CUBE_XXX.pxe.tgz: PXE を使用して CubeCOS をインストールするための PXE サーバーを設定するためのコンポーネントを含むアーカイブ

    また、core/main/ship 配下の各アーティファクトには、MD5ハッシュも記載されています。

  4. ビルドをクリーンアップするには

    make distclean

注記

刑務所に戻る際、あるいはビルドの残骸をクリーンアップする必要がある場合は、make distclean を使用して以前のビルドの成果物をクリーンアップすることをお勧めします。

トラブルシューティング​

git-lfs 以外に、hex(git サブモジュール)が、最上位のソースディレクトリの下に正しくクローンされていることを確認してください。

ls -lt cubecos/hex