# Aimee OS Build Container Images Prerequisites: * `buildah` ## Gentoo Stage 3 Image This image is used to bootstrap the base layer for Aimee OS build images. To build it, use the `gentoo-stage3.sh` build script. This script takes a single (optional) positional argument: the name of a Gentoo stage 3 tarball to use to produce the container image. If none is specified, the latest `stage3-amd64-nomultilib-openrc` tarball is downloaded and used. ```sh sh image-build/gentoo-stage3.sh ``` ## Base Image The Aimee OS base build image is a minimal environment based on Gentoo. It includes Portage and a basic build toolchain. Building it requires a Stage 3 image to bootstrap the environment. By default, _aimee-os.org/gentoo/stage3-amd64-nomultilib-openrc:latest_ is used, but an alternative image can be specified using the `-b`/`--base` argument to the `base.sh` script. ```sh sh image-build/base.sh ``` ## Crossdev Image This image includes a cross-compilation toolchain, generated by _crossdev_. It is built using the `cross.sh` script. This script takes a `-t`/`--target` argument, which specifies the toolchain to generate. The default is `aarch64-unknown-linux-gnu`. This image is layered on top of the base image, which can be specified using the `-b`/`--base` argument. By default, _aimee-os.org/build/base:latest_ is used. ```sh sh image-build/cross.sh ``` ## Build Image The top-level image is based on the Crossdev image, and includes additional tools for building an Aimee OS project. It is built using the `build.sh` script. As with the Crossdev image build script, this script accepts `-t`/`--target` and `-b`/`--build` arguments, which specify the cross-compilation toolchain and base image later, respectively. ```sh sh image-build/build.sh ``` This image is "squashed," meaning it consists of only a single layer. The Base and Crossdev image layers are merged into the final layer when the image is built. This reduces the final size of the image.