我正在尝试构建一个小型R容器,它为我想要在上的码头容器中运行的代码安装一些软件包。
我需要在我的dockerfile中安装(例如) jsonlite来做到这一点:
RUN Rscript -e 'install.packages("jsonlite", repo="http://cran.ma.imperial.ac.uk/")'但是,当我试图在计算引擎上构建包含这一行的dockerfile时,它不会安装。源tarball被下载到/tmp/Rsomething,但是包并没有实际安装。我必须手动在tarball上运行R CMD INSTALL,并且安装是成功的。
当我在本地的同一个dockerfile上运行docker build .时,一切都正常工作,并且正确地安装了包。
AFAIK,这不是发生在2-3个月前-我有一个成功的缓存构建一段时间前。
这里有什么问题?是R,还是码头,计算引擎还是三者的混合物?
我目前的解决办法是添加
RUN find /tmp/ -name '*.tar.gz' -exec R CMD INSTALL '{}' \;直到停靠文件的末尾,但是如果tarball没有按正确的顺序找到,那么就好像在它们的依赖项(有时)之前安装了一些东西,这样就不能工作了。
发布于 2015-01-14 15:57:39
问题是码头实例本身陷入了某种糟糕的状态。在看到一些意外的错误消息(关于http:///var/run/...的内容)之后,我重新启动了主机,之后一切都如期而至。
https://stackoverflow.com/questions/27943616
复制相似问题