Episode ini membahas kontainerisasi di Void: menjalankan Docker dan Podman sebagai service runit, konfigurasi rootless, serta dukungan arsitektur lintas seperti aarch64 dan armv7l untuk Raspberry Pi dengan bootstrap cross menggunakan xbps-src.

Kontainer adalah bahasa modern dari deployment, dan Void mendukungnya dengan cara yang sangat alami. Episode 18 membahas menjalankan Docker dan Podman sebagai service runit, mengonfigurasi mode rootless, serta menjelajahi dukungan cross-arch Void untuk perangkat seperti Raspberry Pi.
Filosofi Void tetap konsisten di sini: container runtime adalah service biasa yang kalian kendalikan dengan sv. Tidak ada layanan ajaib yang berjalan di luar kendali kalian.
Mari mulai dengan runtime kontainer.
Install Docker dan aktifkan daemon-nya sebagai service runit:
sudo xbps-install -S docker
sudo ln -s /etc/sv/docker /var/service/
sudo sv start dockerPerintah sv start docker memulai daemon docker. Verifikasi bahwa daemon bekerja:
docker info | head -n 10
docker run --rm hello-worldAgar bisa menjalankan perintah docker tanpa sudo, tambahkan user ke grup docker:
sudo usermod -aG docker devnullSetelah logout dan login ulang, kalian bisa memakai docker langsung. Ingat: akses grup docker setara dengan akses root, jadi gunakan dengan bijak.
Podman berbeda dari Docker: ia tidak butuh daemon di background. Install dan langsung pakai:
sudo xbps-install -S podman podman-dockerPaket podman-docker menyediakan symlink docker menuju podman untuk kompatibilitas perintah.
Untuk menjalankan kontainer tanpa root, gunakan rootless podman dengan service per-user:
systemctl --user start podman.socket 2>/dev/null || true
podman info --format '{{.Version}}'Perintah podman info menampilkan konfigurasi runtime. Pada sistem tanpa systemd, aktor rootless dikelola dengan skrip podman-rootless yang tersedia di Void.
Void mendukung arsitektur selain x86_64, termasuk:
x86_64 : desktop dan server utama
aarch64 : Raspberry Pi 3/4/5, arm64
armv7l : Raspberry Pi 2, 32-bit ARM
i686 : x86 32-bit lamaMasing-masing tersedia dalam flavor glibc dan musl, dan ISO-nya diunduh dari situs resmi.
Untuk Raspberry Pi, tulis image Void ke kartu SD:
sudo dd if=void-aarch64-20250216.img of=/dev/sdX bs=4M status=progress
sudo syncGanti void-aarch64-20250216.img dengan nama image yang sesuai. Setelah boot, semua manajemen paket berjalan normal dengan XBPS.
Void memungkinkan membangun paket untuk arsitektur lain menggunakan xbps-src. Aktifkan cross build:
echo 'XBPS_CROSS_BUILD="aarch64-linux-musl"' >> etc/conf
./xbps-src binary-bootstrapBaris XBPS_CROSS_BUILD pada etc/conf memberitahu xbps-src target arsitektur. Setelah bootstrap, bangun paket untuk target:
./xbps-src pkg hello
ls hostdir/binpkgs/Hasil build cross disimpan di direktori yang sesuai dengan arsitektur target. Paket ini bisa disalin ke perangkat ARM dan diinstall dengan XBPS.
Kalian bisa menjalankan kontainer ARM di mesin x86_64 menggunakan emulasi binfmt:
sudo xbps-install -S qemu-user-static
sudo xbps-reconfigure -f qemu-user-staticPerintah xbps-reconfigure -f qemu-user-static mendaftarkan emulator qemu ke kernel lewat binfmt. Setelah itu, image kontainer aarch64 bisa dijalankan langsung di host x86_64.
Episode 18 membahas kontainer dan arsitektur lintas di Void: Docker dan Podman sebagai service runit, mode rootless podman, dukungan arsitektur aarch64 dan armv7l untuk Raspberry Pi, serta bootstrap cross dengan xbps-src dan emulasi binfmt.
Inti yang harus dibawa pulang:
dd ke kartu SD.XBPS_CROSS_BUILD di etc/conf.Di episode 19 selanjutnya kita akan membahas virtualisasi dan cloud — membangun VM dengan QEMU/libvirt dan virt-manager, memanfaatkan akselerasi KVM, serta menggunakan image cloud Void untuk AWS, Azure, atau GCP sebagai headless server.