R - install.packages 在计算引擎上的 coreos 上无法在 docker 中工作

R - install.packages not working in docker on coreos on compute engine

我正在尝试构建一个小型 R 容器,用于为我想要 运行 在 Google Compute Engine 上的 docker 容器中安装一些代码包。

我需要安装(例如)jsonlite 在我的 docker 文件中有这样一行:

RUN Rscript -e 'install.packages("jsonlite", repo="http://cran.ma.imperial.ac.uk/")'

但是,当我尝试在计算引擎上构建包含此行的docker文件时,它没有安装。源 tarball 下载到 /tmp/Rsomething 但实际上并没有安装包。我必须在 tarball 上手动 运行 R CMD INSTALL,安装成功。

当我在本地 运行 docker build . 上同一个 docker 文件时,一切正常,并且软件包安装正确。

据我所知,这在 2 到 3 个月前还没有发生 - 不久前我有一个成功的缓存构建。

这里有什么问题? R 或 docker 是计算引擎还是三者的某种混合体?

我目前的解决方法是添加

RUN find /tmp/ -name '*.tar.gz' -exec R CMD INSTALL '{}' \;

到 docker 文件的末尾,但是如果没有以正确的顺序找到 tarball,那么事情似乎是在它们的依赖项之前安装的(有时),这样就不起作用了。

问题是 docker 实例自身进入了某种不良状态。在看到一些意想不到的错误消息(关于 http:///var/run/...)后,我重新启动了主机,之后一切都按预期进行。