During development, we leave a container running and `exec` into it
to run multiple commands. To keep the container running, we need a PID
1 process that never terminates, which we achieved previously with
Python. This technically works, but ultimately leaves a lot of zombie
processes. If we use a "true" init process for PID 1, it will clean
these up.
Aimee OS/container-images/pipeline/head There was a failure building this commitDetails
Although most software can be cross-compiled, there are quite a few edge
cases where executables built for the target system need to be run on
the build host. Notably, `ldconfig` only considers libraries for the
same machine type as the tool itself, so it's impossible to run it in a
cross-compiled root. In order to get passed these situations, we can
use QEMU in user mode to emulate the target architecture, allowing ARM
executables to run on AMD64 machines.
Aimee OS/container-images/pipeline/head This commit looks goodDetails
The _build/cross-{target}_ image only includes the crossdev toolchain.
What we really need is the _build/build-{target}_ image, which contains
all the tools necessary to build an Aimee OS project.
* Base
* Crossdev
* Build
The *Base* layer is bootstrapped from a regular Gentoo stage 3
environment. The *Build* layer is the primary artifact, and is
"squashed" into a single layer when built.