I have a Linux server application that is no longer supported by the vendor.
I need to run 2-3 versions of this application at the same time in parallel.
I can set up different VMs for it, and it works just fine, but it consumes more resources than needed.
Another approach would be to run it in containers, but again, in this case I would have to have 2-3 copies of the same application, which takes a lot of space on a disk, and the different versions of this application are 99% the same in terms of files and differ only in a few binary files that come with it, so it will take a lot of expensive SSD media.
Is there a way to containerize it such that it uses the same codebase, but only a few files, that make the versions different with each other, are made virtually available for every version process (elf executable), while the rest of the files that don't change between the versions and which comprise the bulk of the application are taken from the same source?
Or is there a way to deduplicate somehow the different versions down to file level granularity, so it doesn't take as much space as full copies?
I'm okay with just hints as answers, on which I plan to follow up and write up the full solution if it ends up working.