r - 使用 docker 文件安装 R 包

标签 r docker dockerfile yum install.packages

我已经在我的 docker 文件中使用以下行安装了 R。请建议我现在如何指定要安装在我的 docker 文件中的软件包。

RUN yum -y install R-core R-devel

我正在做这样的事情:

RUN R -e "install.packages('methods',dependencies=TRUE, repos='http://cran.rstudio.com/')"\
    && R -e "install.packages('jsonlite',dependencies=TRUE, repos='http://cran.rstudio.com/')" \
    && R -e "install.packages('tseries',dependencies=TRUE, repos='http://cran.rstudio.com/')" 

这是正确的做法吗?

最佳答案

正如@Cameron Kerr 的评论所建议的,Rscript 不会让您构建失败。 到目前为止,推荐的方法是按照问题的建议进行操作。

RUN R -e "install.packages('methods',dependencies=TRUE, repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('jsonlite',dependencies=TRUE, repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('tseries',dependencies=TRUE, repos='http://cran.rstudio.com/')" 

如果您相当确定没有包失败,请使用此单线 -

RUN R -e "install.packages(c('methods', 'jsonlite', 'tseries'),
                           dependencies=TRUE, 
                           repos='http://cran.rstudio.com/')"

编辑:如果你不使用 Base-R 镜像,你可以使用 rocker-orgr-verr-studiotidyverse 图像。这是repo .这是一个示例 Dockerfile -

FROM rocker/tidyverse:latest

# Install R packages
RUN install2.r --error \
    methods \
    jsonlite \
    tseries

--error 标志是可选的,它使 install.packages() 如果包安装失败(这将导致 docker build 命令失败)。默认情况下,install.packages() 只会抛出一个警告,这意味着即使安装包失败,Dockerfile 也可以构建成功。

所有 rocker-org 基本上都是 installs install2.R 功能的 littler

关于r - 使用 docker 文件安装 R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289764/

相关文章:

git - 如何在 docker ubuntu 镜像上安装 git?

docker-compose up 报错

r - 如何通过在 R 的 data.table 中建立索引来执行逻辑运算符?

sql - dplyr 与 dbplyr 带空格过滤

node.js - 使用 Fleet 启动时 Docker 容器退出

mysql - 增加 mysql docker 中的 max_allowed_pa​​cket 大小

docker - Docker 1.12 Swarm Overlay网络发布端口

r - 更正(或引导)两阶段 glm 的标准错误(下标越界)

r - lubridate 中日期间隔的平均值

jetty - dockerized jetty 在哪里存储日志?