Container-Optimized OS didasarkan pada, dan dibuat menggunakan, alat dari project Chromium OS open source. Jika mau, Anda dapat mem-build image Container-Optimized OS sendiri langsung dari kode sumber Container-Optimized OS.
Prasyarat
Untuk mem-build image Container-Optimized OS, Anda harus menginstal alat berikut di mesin pengembangan:
gitdancurl- Paket skrip Chromium yang disebut
depot_toolsyang menyertakan alat sepertirepodancros_sdk.
Mendapatkan kode sumber Container-Optimized OS
Anda dapat mendownload kode sumber untuk Container-Optimized OS menggunakan
alat repo yang disertakan dalam depot_tools.
Pertama, buat direktori untuk menyimpan kode sumber. Misalnya, cos-src di
direktori utama Anda:
mkdir $HOME/cos-src
cd $HOME/cos-src
Sekarang download kode sumber menggunakan perintah berikut:
repo init https://cos.googlesource.com/cos/manifest.git
repo sync
Mem-build image Container-Optimized OS
Untuk mem-build Container-Optimized OS, Anda harus membuat lingkungan chroot
yang sesuai. Anda dapat menggunakan alat cros_sdk yang disertakan dalam depot_tools untuk membuat
dan memasukkan chroot yang siap untuk kompilasi OS yang Dioptimalkan untuk Container dengan
menjalankan perintah berikut di direktori sumber yang Anda buat di
langkah sebelumnya:
cd $HOME/cos-src
cros_sdk --enter
Setelah berada di dalam chroot, Anda dapat mem-build image disk. Untuk mem-build
Container-Optimized OS, tentukan lakitu (image x86) atau lakitu-arm64
(image Arm) untuk nama board sebagai berikut:
Image x86
build_packages --board=lakitubuild_image --board=lakitu test
Gambar arm
build_packages --board=lakitu-arm64build_image --board=lakitu-arm64 test
Selain test, Anda dapat mem-build image base, atau dev
dengan meneruskan parameter yang sesuai ke perintah skrip ./build image. Jika
Anda tidak menentukan parameter, image dev akan di-build secara default.
Image dev berisi beberapa alat debug tambahan yang diinstal di atas
image base. Image test menyertakan alat debug dari image dev serta
alat yang diperlukan untuk menjalankan pengujian Container-Optimized OS otomatis.
Persyaratan Atribusi
Saat membuat image Container-Optimized OS, Anda harus memenuhi berbagai
persyaratan atribusi lisensi pihak ketiga. Gambar yang dihasilkan oleh build
berisi semua informasi atribusi yang relevan di
/opt/google/chrome/resources/about_os_credits.html. Sebagai artefak build
terpisah, file ini juga tersedia sebagai file license_credits.html di direktori
output build.
Menjalankan Gambar
Setelah mem-build image Container-Optimized OS, Anda dapat menjalankan image menggunakan KVM, atau mengimpor image ke instance Compute Engine.
Berjalan di hypervisor
Untuk mem-booting image di hypervisor, jalankan perintah berikut:
Image x86
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.binGambar arm
sudo apt-get install qemu-system-arm qemu-efidd if=/dev/zero of=/tmp/flash0.img bs=1M count=64dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=/tmp/flash0.img conv=notruncsudo qemu-system-aarch64 -m 1024 -cpu cortex-a57 -M virt -nographic \ -pflash /tmp/flash0.img \ -device virtio-scsi-pci,id=scsi \ -drive if=none,file=src/build/images/lakitu-arm64/latest/chromiumos_test_image.bin,id=hd0 \ -device scsi-hd,drive=hd0,bootindex=0 \ -net nic \ -net user,hostfwd=tcp::9222-:22
Dengan melakukan booting dengan cara ini, port serial VM akan tetap terhubung ke konsol, sehingga Anda dapat login tanpa menggunakan SSH. Jika menjalankan image test, Anda dapat
login dengan pasangan nama pengguna/sandi "root/test0000".
Setelah VM dimulai, Anda dapat mengakses image dev atau test menggunakan SSH. Untuk
mengakses image melalui SSH, gunakan kunci yang dibuat untuk image tersebut, sebagai berikut:
Image x86
ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsaGambar arm
ssh root@localhost -p 9222 -i src/build/images/lakitu-arm64/latest/id_rsaBerjalan di Compute Engine
Untuk mengimpor image ke instance Compute Engine, Anda harus mengompresi image
menjadi file .tar. Untuk mengompresi image, jalankan perintah berikut:
Image x86
tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/latest/chromiumos_image.bin|disk.raw|'Gambar arm
tar -Sczf compressed-image.tar.gz images/lakitu-arm64/latest/chromiumos_image.bin --transform 's|images/lakitu-arm64/latest/chromiumos_image.bin|disk.raw|'Setelah membuat file .tar, Anda dapat mengikuti petunjuk untuk mengimpor image yang ada di dokumentasi Compute Engine.