Building ISO using Docker instead of Vagrant #546
Labels
build
For issues related to compilation/building
enhancement
New feature or request
iso
relating to the ISO-installed environment for Malcolm and/or Hedgehog
Is your feature request related to a problem? Please describe.
There are two main problems that this feature request is related to.
The major issue comes when trying to develop small changes to the build scripts or files included in the live-build configuration.
Describe the solution you'd like
Add a way to build the iso's using docker instead of vagrant and the raw build.sh script. The docker build would then use multi-stage builds to build out the different subparts of the prep (such as the yara debs that are built or the maxmind api download) in a way that the end products are able to be added to the final image without invalidating the other steps. This will speed up the process as these steps would be able to run concurrently and wouldn't need to be rerun if their are no changes to those parts of the build process. This will make debugging and making small iterations to the build process, such as for a custom build, quicker.
There are also a few other advantages to this. Building a base image with all the dependencies for live-build would be able to be reused with both the hedgehog and the malcom iso's. This would also be able to be slotted into the github action flow to build the images.
Describe alternatives you've considered
There are a few alternatives i have considered that all have some drawbacks.
Additional context
Their is also some repeated steps in the configuration for the malcom and the hedgehog iso build envs. Using Docker could let us make a single base docker image that is then able to be used by both the iso build processes.
This could still reuse ghcr.io/mmguero/qemu-live-iso:latest image as the final stage of the build process and directly copy over the iso from the builid context.
Docker also has support for HereDocs which could simplify the build scripts creation of files and allow inlineing of multi-line scripts without having to write '' at the end.
COPY <<EOF config/package-lists/firmwares.list.chroot firmware-linux-free firmware-linux-nonfree firmware-misc-nonfree firmware-amd-graphics firmware-iwlwifi firmware-atheros linux-headers-amd64 EOF
The text was updated successfully, but these errors were encountered: