How Automotive Image Builder works
How Automotive Image Builder works¶
Automotive Image Builder (AIB) takes a YAML manifest and a set of build options as input and produces a deployable OS image as output.
The build process resolves package dependencies, fetches content from configured repositories, and assembles the final image in the requested format.
Input: manifests and options¶
Every build starts with a manifest file that defines what goes into the image. The manifest specifies packages, container images, configuration files, and other content to include. For details on the manifest format, see Automotive Image Builder manifests.
In addition to the manifest, the build command accepts options that control the target hardware platform, distribution, architecture, and output format. For a full list of options, see Options and mechanics.
Build paths¶
AIB provides two build paths for producing OS images:
Package-based disk images with aib-dev build
The aib-dev build command creates a traditional, package-based disk image
directly from a manifest. The output is a bootable disk image file in the
format you specify (for example, qcow2 or raw). Package-based images are
useful for development and testing because they use conventional package
management and produce a mutable filesystem.
$ aib-dev build \
--target qemu \
<path-to-manifest>.aib.yml \
<my-image-name>.qcow2
Bootc container images with aib build
The aib build command creates a bootc container image from a manifest.
Bootc images are immutable and atomically updatable, making them suitable
for production deployments. You can push the resulting container image to a
OCI-compliant container registry and update running systems with bootc switch or bootc update
without re-flashing a disk image.
The following sample command shows how to create a bootc container image from a YML manifest:
$ aib build \
--target qemu \
<path-to-manifest>.aib.yml \
localhost/<my-image-name>:latest
To convert a bootc container image to a bootable disk image, use the
aib to-disk-image command:
$ aib to-disk-image \
localhost/<my-image-name>:latest \
<my-image-name>.qcow2
To produce a bootc container image and disk image with a single command, add the disk image path as a second output argument:
$ aib build \
--target <target> \
<path-to-manifest>.aib.yml \
localhost/<my-image-name>:latest \
<my-image-name>.qcow2
The builder image¶
Automotive images are intentionally minimal and lack many build-time tools
such as dnf, mkfs, and other utilities.
To help work around this limitation, AIB uses a builder image, a container that provides all the tools required to assemble an OS image. The builder image acts as a self-contained build environment, ensuring reproducible builds regardless of the host system configuration.