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:
git
dancurl
- Paket skrip Chromium yang disebut
depot_tools
yang menyertakan alat sepertirepo
dancros_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 -u https://cos.googlesource.com/cos/manifest.git \
--repo-url https://chromium.googlesource.com/external/repo.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=lakitu
build_image --board=lakitu test
Gambar lengan
build_packages --board=lakitu-arm64
build_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 Image
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.bin
Gambar lengan
sudo apt-get install qemu-system-arm qemu-efi
dd if=/dev/zero of=/tmp/flash0.img bs=1M count=64
dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=/tmp/flash0.img conv=notrunc
sudo 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_rsa
Gambar lengan
ssh root@localhost -p 9222 -i src/build/images/lakitu-arm64/latest/id_rsa
Berjalan 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 lengan
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.