Acabo de terminar de escribir un manuscrito para su publicación en una revista científica. Quiero que mi investigación sea reproducible, así que además de compartir mis cuadernos de notas de R originales y compilados en Github, me gustaría guardar el entorno en el que estaba analizando mis datos (incluidos los datos, los cuadernos y las versiones específicas de paquetes y R) en un Contenedor Docker. Además, me gustaría que cualquiera que intente reproducir mi trabajo pueda ejecutar este código en una sesión interactiva de Rstudio.
Pude crear un Dockerfile con el entorno correcto. Aquí hay un ejemplo de juguete:
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 RSin embargo, esto no permite a los usuarios leer los cuadernos Rmd y ejecutar el código línea por línea. Una solución alternativa es ejecutar image rocker/rstudio e instalar los paquetes desde allí, pero me gustaría poder hacerlo desde una única llamada de compilación de docker. Desafortunadamente, no pude hacerlo.
¡Salud!
La imagen de Rocker RStudio debería tener lo que necesita: RStudio en la parte superior de R. Si desea específicamente R 3.5.1, puede encontrar la fuente aquí:
Para obtener más detalles sobre cómo usarlo, lea https://hub.docker.com/r/rocker/rstudio .
Para usar solo las imágenes preconstruidas con una versión R específica
# with R version 3.5.1: docker pull rocker/rstudio:3.5.1Para investigar la imagen de forma interactiva:
docker run --rm -it rocker/rstudio:3.5.1 bashAhora podemos ejecutar por ejemplo:
# 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