I am using R/bioconductor under docker (mostly because it is much easier for me to install, and I want to enable future reproducibility by others).
I invoke R/bioconductor like this, so that I can access my local files from within it:
docker run -v $(pwd):/home/rstudio/$USER -p 8787:8787 bioconductor/devel_base
This is working great, but now I want to install an additional package (DESeq2). It installs fine, but everytime I restart the docker image, I need to install DESeq2 again! And it takes a long time to download and install.
Can I somehow install DESeq2 into the docker image of bioconductor/devel_base so that it does persist? I.e. I do not want to install it again every time I start the docker image. Or can I somehow save the docker image with the installed DESeq2 in it? Or what is the best approach?
I tried this but I am not quite there yet. First I invoked a container of devel_base:
Now, in the virtual R, I insall DESeq2:
I quite the container:
And now I commit the image:
This works, I now have an image devel_base:v2 with DESeq2 installed in it, but now how can I invoke a container of devel_base:v2 so that RStudio is running? If I invoke my original command, just changed to use the new image instead:
then in just starts R (command line), immediately exits, and there is no RStudio running at the port I specified (container is still running).