作者:nuabolalalala4_135 | 来源:互联网 | 2023-01-28 15:36
我在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/')"
这是正确的方法吗?
1> Ic3fr0g..:
正如@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
图像。这是仓库。这是一个示例Dockerfile-
FROM rocker/tidyverse:latest
# Install R packages
RUN install2.r --error \
methods \
jsonlite \
tseries
该--error
标志是可选的,install.packages()
如果程序包安装失败(它将导致docker build
命令失败),则会引发错误。默认情况下,install.packages()
仅引发警告,这意味着即使Dockerfile安装失败,它也可以成功构建。
All rocker-org
基本上安装了littler
该install2.R
功能的软件包
2> elevendollar..:
是的,您的解决方案应该有效.我遇到了同样的问题,并在此处找到了解决方案https://github.com/glamp/r-docker/blob/master/Dockerfile.
简而言之,使用:RUN Rscript -e "install.packages('PACKAGENAME')"
.我试过了它,它的工作原理.
不幸的是,当install.packages失败时,这不会导致Docker构建失败.