简体   繁体   中英

How to build a Docker image with the right R and package versions and open Rstudio with them afterwards?

I just finished writing a manuscript for publication in a scientific journal. I want my research to be reproducible, so besides sharing my original and compiled R markdown notebooks on Github, I would like to save the environment in which I was analysing my data (including the data, notebooks and specific R and package versions) in a Docker container. Moreover, I would like anyone trying to reproduce my work to be able to execute this code in an interactive Rstudio session.

I was able to create a Dockerfile with the correct environment. Here is a toy example:

FROM rocker/r-ver:3.5.1

RUN mkdir /home/working_directory
RUN mkdir /home/working_directory/bin

RUN R -e 'options(repos = \
  list(CRAN = "http://mran.revolutionanalytics.com/snapshot/2019-01-01")); \
  install.packages("ggplot2")'

COPY current/0[1-8]-*.Rmd /home/working_directory/
COPY current/bin/utils.R /home/working_directory/bin/

RUN R

However, this doesn't allow the users to read the Rmd notebooks and execute the code line by line. A workaround is to run the image rocker/rstudio, and install the packages from there, but I would like to be able to do so from a single docker build call. Unfortunately, I wasn't able to do so.

Cheers!

The Rocker RStudio image should have what you need - RStudio on top R. If you want specifically R 3.5.1, you can find the source here:

For more details on how to use it read https://hub.docker.com/r/rocker/rstudio .

To just use the pre-built images with a specific R version

# with R version 3.5.1:
docker pull rocker/rstudio:3.5.1

To investigate the image interactively:

docker run --rm -it rocker/rstudio:3.5.1 bash

Now we can run for example:

# Check R version
Rscript -e "sessionInfo()[['R.version']][['version.string']]"
# [1] "R version 3.5.1 (2018-07-02)"

# Check RStudio Server version
rstudio-server version
# 1.1.463

# Exit when done
exit

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM