role-model / roleR

R package implementing the RoLE model
https://role-model.github.io/roleR
GNU General Public License v3.0
1 stars 2 forks source link

Universal distribution strategy (i.e. docker/virtualbox/?) #68

Closed diazrenata closed 1 year ago

diazrenata commented 1 year ago

So for the workshop we want a pre-installed system of some kind that we can distribute to everyone that will work the same on everyone's laptops. Docker is one way to do this, virtualbox is another. After looking at this for quite a while it seems that both of these methods are confounded by the need to support both intel and arm (new Mac M1/M2) architectures.

isaacovercast commented 1 year ago

Here's the real problem with docker for our use case: We have to assume there will be people with laptops of different architectures, probably mostly x86_64 (Intel), but certainly there will also be people with Mac M1/M2 processors (arm). It is possible to build multi-arch docker images but to do this we would need to create a Dockerfile that does the full install of R, conda, roleR, and msprime. This will take quite a long time, if it is even possible.

The alternative would be to dl the stock ubuntu docker image and perform the installs inside it by hand, and then commit the changes to a new docker image, which is actually kind of clever and works well. But to support arm and intel we would need to do this twice, in the exact same way on different computers, and keeping this system updated and in exact synch would be painful.

isaacovercast commented 1 year ago

Virtualization (vbox) doesn't exactly work after all because the underlying architecture is still important. The best way I thought to do this so far was using UTM on mac (arm) to run an x86 ubuntu image and then exporting it to .vdi, though this still feels clunky.

Using docker seems more straightforward at the moment and I've got an install idea for containers wired pretty well. See #105 for details on the docker install.

ajrominger commented 1 year ago

i think we decided to take the docker plunge right? i'm going to close this, but we can reopen as needed