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 ...