We should create an automated docker image, linked to the official releases. This was brought up in the first workshop.
If someone else doesn't volunteer to set this up, I can work on it (eventually...) since I have experience.
Hey @agladstein, what would this entail? Is it just a yaml config file, or is there more to it? How are these docker images used in practice?
a docker image is made with a Dockerfile (see for example https://github.com/tskit-dev/msprime/blob/main/Dockerfile). Then the Docker image can be automatically built and updated on Dockerhub (e.g. https://hub.docker.com/r/tskit/msprime/builds). The Docker image, which contains the complete environment, can then be pulled from DockerHub and run anywhere via a Docker or Singularity container (or apparently podman - never heard of podman). Docker containers usually cannot be run on HPC, but Singularity containers can.
In my opinion, they are most useful when running things on different systems and you don't want to have to deal with getting your environment set up multiple times (or maybe you have conflicts in your environment). So, for example, when I run my workflows on different HPC clusters, I just run everything with the same singularity container. I can also give that same singularity container to anyone else who wants to run the workflow and they don't need to install anything.
@castedo set up a slightly different workflow in https://github.com/tskit-dev/containers, which I haven't got caught up on yet.
The workflows I setup are for:
So the automated docker image building I think is more what @agladstein links to which is for the scenarios of end-users of msprime who want a container with msprime already installed.
I also have this docker file that I made for my personal project that has everything I like. Just another example.
https://hub.docker.com/r/agladstein/data_science_popgen_notebook