Container-Optimized OS 基于 Chromium OS 开放源代码项目,使用该项目中的工具构建而成。如果愿意,您可以直接使用 Container-Optimized OS 源代码自行构建 Container-Optimized OS 映像。
前提条件
要构建 Container-Optimized OS 映像,您需要在开发机器上安装以下工具:
git
并且curl
- 一个名为
depot_tools
的 Chromium 脚本程序包,其中包含repo
和cros_sdk
等工具。
获取 Container-Optimized OS 的源代码
您可以使用 depot_tools
中包含的 repo
工具,下载 Container-Optimized OS 的源代码。
首先,创建一个用于存储源代码的目录。例如,在主目录中创建 cos-src
:
$ mkdir $HOME/cos-src
$ cd $HOME/cos-src
现在,使用以下命令下载源代码:
$ repo init -u https://cos.googlesource.com/cos/manifest.git \
--repo-url https://chromium.googlesource.com/external/repo.git
$ repo sync
构建 Container-Optimized OS 映像
要构建 Container-Optimized OS,您必须创建合适的 chroot
环境。您可以使用 depot_tools
中包含的 cros_sdk
工具,通过在上一步创建的来源目录中运行以下命令,来创建和输入可用于 Container-Optimized OS 编译的 chroot
:
$ cd $HOME/cos-src
$ cros_sdk --enter
进入 chroot
后,即可构建磁盘映像。要构建 Container-Optimized OS,请按如下方式指定 lakitu
作为板名称:
(cr) ~/trunk/src/scripts $ ./build_packages --board=lakitu
(cr) ~/trunk/src/scripts $ ./build_image --board=lakitu test
除了 test
,您还可以通过将适当的参数传递给 ./build image
脚本命令来构建 base
或 dev
映像。如果未指定参数,则默认构建 dev
映像。
dev
映像包含在 base
映像的基础之上安装的一些附加调试工具。test
映像包含 dev
映像中的调试工具,以及运行自动 Container-Optimized OS 测试所需的工具。
运行您的映像
构建好 Container-Optimized OS 映像后,您可以使用 KVM 运行映像,或将映像导入 Compute Engine 实例。
在 KVM 中运行
要在 KVM 中启动映像,请运行以下命令:
~/cos $ kvm -m 1024 -nographic -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:9222-:22 -hda src/build/images/lakitu/latest/chromiumos_test_image.bin
以这种方式启动时,系统会将虚拟机的串行端口连接到控制台,让您无需使用 SSH 即可登录。如果您运行的是 test
映像,则可以使用用户名/密码对“root/test0000”登录。
启动虚拟机后,您可以使用 SSH 访问 dev
或 test
映像。要通过 SSH 登录映像,请使用系统为该映像生成的密钥,如下所示:
~/cos $ ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsa
在 Compute Engine 上运行
要将映像导入 Compute Engine 实例,您必须将映像压缩为 .tar
文件。要压缩映像,请运行以下命令:
~/cos $ tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/latest/chromiumos_image.bin|disk.raw|'
创建 .tar
文件后,您可以按照 Compute Engine 文档中的说明导入现有映像。