Infinite loop much? |
||
---|---|---|
ci | ||
image-build | ||
lib | ||
portage | ||
tools | ||
.editorconfig | ||
.gitignore | ||
README.md |
README.md
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 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 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 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 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.