Development Container
Note
This chapter covers the Buildah based workflow v2.
The Debian development happens in a self-contained manner. If an application for Debian trixie shall get built then its development shall happen within a Debian trixie environment. In this example a Debian trixie container that is as similar as possible to the deployment environment on the target system gets created:
edi -v project make pi-cross-dev.yml
The result of the above command is a Podman image.
Note
Podman images can be easily shared with colleagues via an OCI registry. Also Docker users can pull those images.
The tool distrobox
can turn the Podman image into a convenient development
container with a shared home folder:
source artifacts/pi-cross-dev_manifest
distrobox create --image "${podman_image}" --name pi-dev-container --init --unshare-all --additional-packages "systemd libpam-systemd"
distrobox enter pi-dev-container
Even GUI applications can be launched from within that Podman based container.
Note
The development container inherits the Debian architecture of the host system. Cross compilation can be used to generate binaries that are capable of running on the target system:
john@pi-dev-container:~/edi-workspace/edi-pi$ aarch64-linux-gnu-gcc ...