R – install.packages不能在计算引擎上的docker上运行

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

我需要安装(例如) jsonlite在我的dockerfile是一个行来做到这一点:

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

但是,当我尝试在计算引擎上构build包含此行的dockerfile时,它不会安装。 源代码tarball被下载到/ tmp / Rsomething,但实际上并没有安装该软件包。 我必须在tarball上手动运行R CMD INSTALL ,并且安装成功。

当我运行docker build . 在本地相同的dockerfile上,一切正常,包安装正确。

AFAIK,这在2-3个月前没有发生过 – 前段时间我的caching构build成功了。

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

我目前的解决方法是添加

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

到docker文件的末尾,但是如果没有按照正确的顺序findtarball,那么事情似乎是在它们的依赖关系(有时)之前安装的,这样就无法工作。

问题是docker实例本身陷入了一个糟糕的状态。 在看到一些意外的错误消息(关于http:///var/run/... )之后,我重新启动了主机,之后一切按预期进行。