このページでは、Container-Optimized OS のソースコードの詳細(Container-Optimized OS のイメージソースへのアクセス方法、関連するコンテナツールのソース、ソースからのビルド方法など)について説明します。
コンテナ用に最適化された OS のイメージソース
Google の Container-Optimized OS は、Chromium OS のオープンソース プロジェクトのフォークです。Container-Optimized OS のソースコードの大部分は、COS リポジトリ https://cos.googlesource.com で公開されています。
イメージをビルドするために使用されたソースコードを特定する上で、次のリソースが役立ちます。
OS イメージ内の
/opt/google/chrome/resources/about_os_credits.htmlファイルには、そのイメージをビルドするために使用されたすべてのパッケージのバージョンとライセンスの情報が含まれています。カーネルソース: https://cos.googlesource.com/third_party/kernel/+/cos-5.15
カーネル構成(x86): https://cos.googlesource.com/third_party/kernel/+/refs/heads/cos-5.15/arch/x86/configs/lakitu_defconfig
カーネル構成(Arm): https://cos.googlesource.com/third_party/kernel/+/refs/heads/cos-5.15/arch/arm64/configs/lakitu_defconfig
特定のバージョンをビルドするために使用されたカーネルソースの commit SHA1 も、そのバージョンのリリースノートに記載されています。アーカイブされたカーネルソースやカーネル ヘッダーなど、その他のイメージ アーティファクトも
gs://cos-tools/<build-number>/で一般公開されている Google Cloud Storage バケット内にあります。たとえば、cos-dev-105-17228-0-0のアーティファクトはgs://cos-tools/17228.0.0/にあります。
         gcloud storage ls gs://cos-tools/17228.0.0/
         gs://cos-tools/17228.0.0/about_os_credits.html
         gs://cos-tools/17228.0.0/about_os_credits.html.md5
         gs://cos-tools/17228.0.0/cos-package-info.json
         gs://cos-tools/17228.0.0/cos-package-info.json.md5
         gs://cos-tools/17228.0.0/cos_full_payload_dev.bin
         gs://cos-tools/17228.0.0/gpu_R470_version
         gs://cos-tools/17228.0.0/gpu_R470_version.md5
         gs://cos-tools/17228.0.0/gpu_default_version
         gs://cos-tools/17228.0.0/gpu_default_version.md5
         gs://cos-tools/17228.0.0/gpu_latest_version
         gs://cos-tools/17228.0.0/gpu_latest_version.md5
         gs://cos-tools/17228.0.0/kernel-headers.tgz
         gs://cos-tools/17228.0.0/kernel-headers.tgz.md5
         gs://cos-tools/17228.0.0/kernel-src.tar.gz
         gs://cos-tools/17228.0.0/kernel-src.tar.gz.md5
         gs://cos-tools/17228.0.0/kernel_commit
         gs://cos-tools/17228.0.0/kernel_commit.md5
         gs://cos-tools/17228.0.0/kernel_info
         gs://cos-tools/17228.0.0/kernel_info.md5
         gs://cos-tools/17228.0.0/manifest.xml
         gs://cos-tools/17228.0.0/manifest.xml.md5
         gs://cos-tools/17228.0.0/toolchain.tar.xz
         gs://cos-tools/17228.0.0/toolchain.tar.xz.gcs
         gs://cos-tools/17228.0.0/toolchain.tar.xz.md5
         gs://cos-tools/17228.0.0/toolchain_env
         gs://cos-tools/17228.0.0/toolchain_env.md5
         gs://cos-tools/17228.0.0/vmlinux
         gs://cos-tools/17228.0.0/vmlinux.md5
         gs://cos-tools/17228.0.0/lakitu-arm64/
         gs://cos-tools/17228.0.0/lakitu/
- Arm ベース イメージのイメージ アーティファクトは、
gs://cos-tools/<build-number>/lakitu-arm64/の Cloud Storage 公開バケット内にあります。たとえば、cos-arm64-dev-105-17228-0-0のアーティファクトはgs://cos-tools/17228.0.0/lakitu-arm64/にあります。 
        gcloud storage ls gs://cos-tools/17228.0.0/lakitu-arm64/
        gs://cos-tools/17228.0.0/lakitu-arm64/about_os_credits.html
        gs://cos-tools/17228.0.0/lakitu-arm64/about_os_credits.html.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/cos-package-info.json
        gs://cos-tools/17228.0.0/lakitu-arm64/cos-package-info.json.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_R470_version
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_R470_version.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_default_version
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_default_version.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_latest_version
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_latest_version.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-headers.tgz
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-headers.tgz.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-src.tar.gz
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-src.tar.gz.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_commit
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_commit.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_info
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_info.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/manifest.xml
        gs://cos-tools/17228.0.0/lakitu-arm64/manifest.xml.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain.tar.xz
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain.tar.xz.gcs
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain.tar.xz.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain_env
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain_env.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/vmlinux
        gs://cos-tools/17228.0.0/lakitu-arm64/vmlinux.md5
Chromium OS ビルドシステムに精通している方には、https://cos.googlesource.com/cos/overlays/board-overlays/+/master/project-lakitu/ にあるビルドレシピも役立ちます。
個々のパッケージの実際のソースコード アーカイブは、Chromium OS ビルドシステムによって維持されているパッケージ ミラーでも見つけることができます。パッケージ ミラーにアクセスするには、以下の URL のいずれかに、適切な tarball 名を追加してください。
https://storage.googleapis.com/chromeos-mirror/gentoo/distfiles/https://storage.googleapis.com/chromeos-localmirror/distfiles/たとえば、kubernetes バージョン 1.19.2 をダウンロードするには、
https://storage.googleapis.com/chromeos-localmirror/distfiles/kubernetes-server-linux-amd64-1.19.2.tar.gzを使用します。
Chromium OS ビルドに関するよくある質問とその他の Chromium OS ビルドに関するドキュメントでは、ビルドシステムとパッケージ ミラーの仕組みについて説明しています。
コンテナのソース
Google の Container-Optimized OS には、実行時にコンテナをダウンロードするツールがいくつか付属しています。これらのコンテナもオープンソースです。次の表に、コンテナ、ソースの場所、リリースの場所を示します。
| コンテナ | リリースの場所 | 
|---|---|
| ツールボックス | Container Registry gcr.io/cos-cloud/toolbox | 
| Cos-gpu-installer | Container Registry gcr.io/cos-cloud/cos-gpu-installer | 
| Cloud Logging エージェント | Container Registry gcr.io/stackdriver-agents/stackdriver-logging-agent | 
| Konlet エージェント | Container Registry gcr.io/gce-containers/konlet | 
ソースからのビルド
ソースから Container-Optimized OS ディスク イメージをビルドするには、オープンソースからの構築の手順に従ってください。
ソースコードの投稿
Container-Optimized OS は、一般からの直接的な投稿を受け付けていません。