We have an in-house developed posix-c style “shared memory framework” that we use to run simulations of multiple computer models that communicate to one another using shared memory semaphores.
There are three parts to it, the shared memory server, the models which are derived from Matlab Simulink models and exported as generated C and then integrated with the server using wrappers, and then prototype code that simulates the algorithms that monitor the input/output of the models and act and report on events (one type of model fails, another kicks on to take it’s place).
It all runs on CentOS 6.9 and we use Subversion with svn+ssh. The simulations produce GB and GB worth of output files and the repositories themselves are 30ish GB. We looked at Vagrant to solve the “works on mine, not on yours” fiasco but it didn’t seem to add a lot more value that Ansible was already providing since we still needed this monster 100GBish virtual drive.
Would Docker be a good candidate for this case? If so, I’m trying to wrap my head around migrating over… some users are on Macs and others Windows and we need SSH keys so I have to create a user account on the docker container and pull their SSH keys from a Django REST API. And then I’m guessing all of the source code and data that’s written out during a simulation should go in a separate container/volume? How would I do that in a Dockfile? I did some googling but couldn’t find an easy way, like reading the system environment variable %USERNAME% if windows, $USER if mac, etc.
Any advice will be greatly appreciated!