【问题标题】:Install R in docker image在 docker 镜像中安装 R
【发布时间】:2017-07-21 18:24:51
【问题描述】:

如何在我的 docker 镜像中安装 R 版本 3.4.0。我已经使用以下方式安装了 python:

RUN yum -y install https://centos6.iuscommunity.org/ius-release.rpm \
  && yum -y install python36u \
  && yum -y install python36u-devel \
  && yum -y install python36u-pip \
  && yum -y install python36u-tkinter.x86_64

同样我需要安装R:

到目前为止,我已经在文件中为 R 指定了以下内容:

ENV R_BASE_VERSION 3.4.0
RUN Rscript -e 'install.packages("devtools",dependencies=TRUE)' \
    &&Rscript -e 'install.packages("methods",dependencies=TRUE)' \
    &&Rscript -e 'install.packages("jsonlite",dependencies=TRUE)' \

请建议。我是 docker 新手

我认为我需要执行以下操作:

ENV R_BASE_VERSION 3.4.1

## Now install R and littler, and create a link for littler in /usr/local/bin
## Also set a default CRAN repo, and make sure littler knows about it too
RUN apt-get update \
    && apt-get install -t unstable -y --no-install-recommends \
        littler \
                r-cran-littler \
        r-base=${R_BASE_VERSION}* \
        r-base-dev=${R_BASE_VERSION}* \
        r-recommended=${R_BASE_VERSION}* \
        && echo 'options(repos = c(CRAN = "https://cran.rstudio.com/"), download.file.method = "libcurl")' >> /etc/R/Rprofile.site \
        && echo 'source("/etc/R/Rprofile.site")' >> /etc/littler.r \
    && ln -s /usr/share/doc/littler/examples/install.r /usr/local/bin/install.r \
    && ln -s /usr/share/doc/littler/examples/install2.r /usr/local/bin/install2.r \
    && ln -s /usr/share/doc/littler/examples/installGithub.r /usr/local/bin/installGithub.r \
    && ln -s /usr/share/doc/littler/examples/testInstalled.r /usr/local/bin/testInstalled.r \
    && install.r docopt \
    && rm -rf /tmp/downloaded_packages/ /tmp/*.rds \
    && rm -rf /var/lib/apt/lists/*

但我不知道这垃圾是什么。我只需要安装 R,然后我将按照上面指定的方式安装所需的包。

编辑:我的 docker 文件中的第一行安装了 node4。

【问题讨论】:

  • 你能指定,你使用的是哪个基础镜像吗?
  • 这是我自己的存储库(基础镜像安装节点 js)。如果你告诉我如何安装 R 会很棒

标签: python r docker dockerfile


【解决方案1】:

【讨论】:

  • 出于某种原因我需要安装。你能指导我如何安装吗?因为,我已经在使用 FROM 节点进行节点安装,我认为我不能在 dockerfile 中使用多个 from,所以请告诉我如何像安装 python 一样安装 R。
  • 你的基础镜像是什么(DockerFile 的第一行)?因为安装 R 依赖于基础镜像。没有人能在不知道你的基本形象的情况下给你答案。
  • @AlexandreFenyo 。这是我自己的存储库(基本映像安装节点 js)。如果你告诉我如何安装 R 会很棒
  • @AlexandreFenyo ;第一行安装 node4:latest
  • 非常感谢这个无用的答案。我正在构建一个已经有 from other:image 的图像,我需要将 R 添加到那个图像中。
【解决方案2】:

这里有两个 DockerFile 来安装 Python、R 和 NodeJS

第一个安装 Python 3.4.2、R 3.1.1 和 nodejs 4.8.4:

From node:4
RUN apt-get update && apt-get remove -y python && apt-get install -y python3 r-base
RUN cp /usr/bin/python3 /usr/bin/python

第二个安装 Python 3.5.3、R 3.4.1 和 nodejs 4.8.4:

From r-base:3.4.1
RUN apt-get update && apt-get install -y python3 nodejs
RUN cp /usr/bin/python3 /usr/bin/python

选择最适合您的需求。

【讨论】:

  • 好吧,在这之后我就完成了,我需要把那个安装包的东西放对了吗?并且不需要指定 r 版本和所有?
  • @Alexander Fenyo 好的,所以这是一个更改,我需要安装我已经完成的 python 3.6.1。它工作正常。唯一的事情是我需要安装 R.
  • 请指导。从节点:4 RUN apt-get update && apt-get install -y r-base 。 [只做这个好吗?]
  • 您没有提供足够的信息来获得完整的答案。
  • 我已经指定我已经安装了python 3.6.1;第一行是 From node:4 ;我只需要 R. RUN apt-get update && apt-get install -y r-base 。 [只做这个好吗?]
【解决方案3】:

如果你的公共基础镜像(你自己镜像的基础镜像)真的是node:4,那么它不是基于yum而是基于apt-get来管理包的。

因此你应该按照以下方式安装 R:

RUN apt-get update && apt-get install -y r-base

【讨论】:

  • 好的,那么 docker 文件会是什么样子: FROM nodejs (first line) ; RUN apt-get update && apt-get install -y r-base (第二行) ;ENV R_BASE_VERSION 3.4.0 RUN Rscript -e 'install.packages("devtools",dependencies=TRUE)' \ &&Rscript -e 'install. packages("methods",dependencies=TRUE)' \ &&Rscript -e 'install.packages("jsonlite",dependencies=TRUE)' \.请检查
  • 会像上面那样吗? ENV的事情会来吗?
  • 正是我需要的。我的基本映像是Python3.6,需要r-base 来安装r2py
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
相关资源
最近更新 更多