r语言 - 在rocker/tidyverse docker镜像构建期间安装包



我正在使用rocker/tidyverse构建docker映像。

我Dockerfile:

FROM rocker/tidyverse:4.0.4
COPY train.R /train.R
COPY install.R /install.R
COPY entrypoint.sh /entrypoint.sh
# pre install the packages during build
RUN Rscript install.R

下面是上面的install.r脚本:

install.packages('pacman')
pacman::p_load(lubridate, Metrics, foreach)

还对安装中的每个包只使用install.packages(<packagename>)进行了尝试。r脚本。

当我尝试构建时,我得到一个错误消息:

docker-compose build rtrain
Step 5/5 : RUN Rscript install.R
---> Running in 3ebf7ab0c227
Installing package into '/usr/local/lib/R/site-library'
(as 'lib' is unspecified)
Warning: unable to access index for repository https://packagemanager.rstudio.com/cran/__linux__/focal/2021-03-30/src/contrib:
cannot open URL 'https://packagemanager.rstudio.com/cran/__linux__/focal/2021-03-30/src/contrib/PACKAGES'
Warning message:
package 'pacman' is not available for this version of R

如果我从构建中删除RUN Rscript install.r,而是运行映像,然后执行到它,我就可以用Rsctipt install.r运行它。只有在构建过程中才会发生这种情况。

在我上面链接到的第一个url的页面上提到了脚本install2.r,但我在任何地方都找不到任何提及。全文:

指出

  • 不使用apt-get install r-cran-*来安装R包。请求的R版本和所有R包都是从版本稳定栈中的源代码安装的。从apt安装R包(例如r-cran-*包)将安装R版本和为稳定版debian构建的包的版本(例如debian:stretch),为您提供第二个R版本和不同的包。请使用install.packages()R函数(或install2.r脚本)从源代码安装R包,并使用apt仅安装必要的系统库(例如libxml2)。如果您希望使用apt-get从预构建的二进制文件中只安装最新版本的软件包,请考虑使用r-base堆栈。

下划线I did try modimodiinstall。r只是重复install.packages("lubridate")install.packages("Metrics")install.packages("foreach")行,但发生相同的错误。

如何在构建过程中使用此映像安装软件包?

将我的版本更改为4.0.1解决了我的问题:

FROM rocker/tidyverse:4.0.1

然后一切都一样,工作。

最新更新