I went through the Getting Started guide of Firecracker microVM via building from source via Docker and following the steps. I have working knowledge of Docker via CLI/Visual Studio UI/ECS and remember building AWS AMIs manually before the Docker ubiquity...
However, this part is completely uncharted territory for me and several googling rounds over the past weeks did not help:
Next, you will need an uncompressed Linux kernel binary, and an ext4 file system image (to use as rootfs). You can use these files from our microVM image S3 bucket: kernel, and rootfs.
What is hello-vmlinux.bin
and how to build one with my pre-installed apps? Could it be done similarly to Docker or AMI, i.e. in a simple way?
What is hello-rootfs.ext4
file and how to create a custom one for the same purpose as in 1. above?
vmlinux.bin - it's linux kernel image which will be used by VM. Probably you can use provided kernel w/o any modifications.
hello-rootfs.ext4 - it's a file which contains root file system for your VM. You have to modify the file to add your application.
mkdir -p /tmp/myroot
sudo mount rootfs.ext4 /tmp/my-rootfs
Add start script for your application to /tmp/myroot/etc/init.d/ Start script have to be prepared for OpenRC init system.
Unmount rootfs
sudo umount /zprojects/modus/sketch/images/hello-rootfs.ext4
Start firecracker so your application will be started as a part of VM init system start up.
You probably would like to check how to provide network access to your VM also: vm network setup doc