我已经在我的 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-org
的 r-ver
或 r-studio
或 tidyverse
图像。这是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/