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/...
)之后,我重新启动了主机,之后一切按预期进行。