我刚写完一本手稿,就可以在科学期刊上发表。我希望我的研究具有可重复性,因此,除了在Github上共享原始和已编译的R markdown笔记本外,我还希望将分析数据(包括数据,笔记本以及特定的R和软件包版本)的环境保存在Docker容器。此外,我希望任何尝试复制我的作品的人都能够在交互式Rstudio会话中执行此代码。
我能够在正确的环境下创建一个Dockerfile。这是一个玩具示例:
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
但是,这不允许用户阅读Rmd笔记本并逐行执行代码。一种解决方法是运行image rocker / rstudio,然后从那里安装软件包,但是我希望能够通过一个docker build调用来做到这一点。不幸的是,我无法做到这一点。
干杯!
答案 0 :(得分:1)
Rocker RStudio映像应该具有您所需要的-RStudio位于R的顶部。如果您想要R 3.5.1,可以在这里找到源代码:
有关如何使用它的更多详细信息,请阅读https://hub.docker.com/r/rocker/rstudio。
仅使用具有特定R版本的预制图像
# with R version 3.5.1:
sudo docker pull rocker/rstudio:3.5.1
以交互方式调查图像:
sudo docker run --rm -it rocker/rstudio:3.5.1 bash
现在我们可以运行例如:
# 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