从源安装软件包失败-Dockerfile

时间:2019-05-29 23:03:22

标签: r docker package

我正在尝试从源代码安装一些软件包(包括我创建的软件包,该软件包可以通过R控制台安装,甚至在安装R CMD时也可以安装。

但是,在使用docker文件构建docker-image时。我在docker文件中的这一行收到此错误

RUN R -e 'install.packages("RcppDIUtilsPackage_1.0.tar.gz",repos=NULL,type="source")'

我还尝试了许多其他命令,包括R CMD INSTALL都可以很好地安装软件包,但在docker image build中除外。

这是我遇到的错误。

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning: invalid package ‘RcppDIUtilsPackage_1.0.tar.gz’
Error: ERROR: no packages specified
Warning message:
In install.packages("RcppDIUtilsPackage_1.0.tar.gz", repos = NULL,  :
  installation of package ‘RcppDIUtilsPackage_1.0.tar.gz’ had non-zero exit status

谢谢!

编辑:Dockerfile

FROM rocker/r-ver:3.4.4

WORKDIR /home/ubuntu/projects/DService

RUN apt-get update -qq && apt-get install -y \
  libssl-dev \
  libcurl4-gnutls-dev

RUN R -e "install.packages('plumber')"

RUN R -e "install.packages('Rcpp')"

RUN R -e 'install.packages("RcppDIUtilsPackage_1.0.tar.gz",repos=NULL,type="source")'

COPY / /

EXPOSE 8000

CMD ["Rscript", "DService.R"]

command: sudo docker build --no-cache -t dservice-docker-image .

1 个答案:

答案 0 :(得分:0)

这是您问题的间接解决方案,因为我无法解决同一问题。

问题的根源可能与从Dockerfile创建Docker映像的主机环境有关。具体来说,启动安装本地软件包的R实例可能无法访问本地软件包的存储路径。

对我来说,解决方案是避免使用本地软件包。将任何本地存储库移动到远程存储库,并在Dockerfile中引用它们。例如

RUN R -e "devtools::install_github('dmanuge/shinyFilesWidget') ; system('echo 14')"

然后,重建您的Docker映像并相应地运行它。虽然这不是直接的解决方案,但我已达到调试的关键阈值,需要继续进行下去。 :)