Как создать образ Docker с правильными версиями R и пакетов и открыть Rstudio вместе с ними? - PullRequest
2 голосов
/ 10 мая 2019

Я только что закончил писать рукопись для публикации в научном журнале.Я хочу, чтобы мои исследования были воспроизводимыми, поэтому помимо обмена моими оригинальными и скомпилированными записными книжками с уценкой R на Github, я хотел бы сохранить среду, в которой я анализировал свои данные (включая данные, записные книжки и конкретные версии R и пакетов) вДокер контейнер.Более того, я хотел бы, чтобы любой, кто пытается воспроизвести мою работу, мог выполнить этот код в интерактивном сеансе 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 и выполнять код построчно.Обходной путь - запустить образ rocker / rstudio и установить пакеты оттуда, но я хотел бы сделать это с помощью одного вызова сборки докера.К сожалению, я не смог этого сделать.

Ура!

1 Ответ

1 голос
/ 10 мая 2019

Изображение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...