Score:0

How to containerize a Linux native application in order to have multiple versions of it running at the same time from mostly the same codebase?

cn flag

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.

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.