deploy an os like an app - embedded debian builder with merged squasfhs+tmpfs+overlayfs
GPL-2.0 License
build a custom debian image with multistrap into a single squasfs-file with tmpfs overlay
NOTE: this buildsystem is targeted to advanced/professional users with a several years of experience with linux/debian/docker only!
DO NOT USE THIS SYSTEM/IMAGES AS BEGINNER
systemd-nspawn
containerCreate highly customizable and fully immutable images for:
embedded
binfmt-support
(for qemu armel emulation)sudo
to run systemd-nspawn
as user~450MB
disk space for the build system~5GB
disk space for the target systemapt-get install sudo systemd-container multistrap binfmt-support qemu-user-static
# create group with sudo access to systemd-nspawn
groupadd nspawn
# assign group to your build user
usermod -a -G nspawn myBuildUser
File /etc/sudoers.d/nspawn
%nspawn ALL=(root) NOPASSWD:/usr/bin/systemd-nspawn
Run hypersolid.sh build <targetdir>
Build
$ ./hypersolid build targets/raspberrypi-zero-w/
/tmp/hypersolid-env
via multistrap
/tmp/hypersolid-env/build/*
<hypersolid-env>/build/target
| systemd-nspawn in <hypersolid-env>
dpkg --configure
is executed within the target environment | systemd-nspawn in <hypersolid-env>/build/target
<hypersolid-env>/build/dist
| systemd-nspawn in <hypersolid-env>
/tmp/hypersolid-env
- the isolated build system<hypersolid-env>/build/rootfs
- merged rootfs (hypersolid generic + target)<hypersolid-env>/build/target
- the multistrap chroot containing the final system<hypersolid-env>/build/dist
- output directory including the kernel+initramfs+system image and optional filehypersolid is OpenSource and licensed under the Terms of GNU General Public Licence v2. You're welcome to contribute!