【发布时间】:2020-02-14 12:49:46
【问题描述】:
我正在尝试使用 Dockerfile 安装 R 包。
我安装了图片Rocker/Rstudio。
Dockerfile的内容是:
# Base image https://hub.docker.com/r/rocker/rstudio
FROM rocker/rstudio:latest
## Create directories
RUN mkdir -p /rstudio
RUN mkdir -p /rscripts
##Install R packages
RUN R -e "install.packages(c('rvest', 'jsonlite', 'data.table' ,'stringr'), repos = 'http://cran.us.r-project.org')"
然后我构建我的图像:docker build -t my_r_image .
图像构建但未安装软件包,因为我收到此警告:
将软件包安装到“/usr/local/lib/R/site-library”(因为“lib”是 未指定)警告:无法访问存储库的索引 http://cran.us.r-project.org/src/contrib: 打不开网址 'http://cran.us.r-project.org/src/contrib/PACKAGES'
我尝试将http://cran.us.r-project.org 替换为= 'http://cran.rstudio.com/')",但我收到了类似的错误,提示它无法访问存储库的索引。
有人知道我做错了什么吗?
edit1:请参阅以下输出:
.libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/local/lib/R/library"
install.packages(c('rvest', 'jsonlite', 'data.table' ,'stringr'), repos = 'http://cran.us.r-project.org')
Warning in install.packages :
unable to access index for repository https://mran.microsoft.com/snapshot/2019-10-15/src/contrib:
cannot open URL 'https://mran.microsoft.com/snapshot/2019-10-15/src/contrib/PACKAGES'
Installing packages into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages :
unable to access index for repository http://cran.us.r-project.org/src/contrib:
cannot open URL 'http://cran.us.r-project.org/src/contrib/PACKAGES'
Warning in install.packages :
packages ‘rvest’, ‘jsonlite’, ‘data.table’, ‘stringr’ are not available (for R version 3.6.1)
【问题讨论】:
-
当您进入容器并进入 R 时,您的
.libPaths()是什么?目录上有这些设置吗?在 R 会话中尝试在没有RUN R -e "install.packages(c('rvest', 'jsonlite', 'data.table' ,'stringr'), repos = 'http://cran.us.r-project.org')"行的容器中进行调试可能是值得的。 -
构建主机或其进程是否有网络限制?当网络故障(临时)或受政策限制时,这种警告很常见。
-
@r2evans 我该如何检查这个?我选择了 AWS 中可用的第一个 EC2 实例,然后直接安装了 rocker/rstudio
-
@JonnyPhelps 我使用您建议的命令编辑了我的帖子。我不确定我怎么知道这些设置是否在目录中?
-
尝试使用网络(在您的构建脚本中)是否真的成功了?这看起来很像构建容器无法访问互联网。
标签: r docker package dockerfile