This repository has been archived on 2025-09-06. You can view files and clone it, but cannot push or open issues/pull-requests.
Go to file
Dustin 9377c9423c ci: Fix file ownership before archiving
Several log files in `/var/log` are owned by users other than root.
From outside the user namespace, these files are inaccessible to the
unprivileged user, so we need to change their ownership before we can
archive them.
2024-12-14 14:17:33 -06:00
ci ci: Fix file ownership before archiving 2024-12-14 14:17:33 -06:00
image-build cross: Fix parsing arguments 2024-12-14 14:17:33 -06:00
lib ci: Archive logs from /var/log too 2024-12-14 14:17:33 -06:00
portage build: Install QEMU 2024-12-12 18:02:16 -06:00
tools Rework images into three layers 2024-12-08 10:59:28 -06:00
.editorconfig Initial commit 2024-12-02 21:03:08 -06:00
.gitignore Initial commit 2024-12-02 21:03:08 -06:00
README.md Rework images into three layers 2024-12-08 10:59:28 -06:00

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.