我正在尝试从源代码安装一些软件包(包括我创建的软件包,该软件包可以通过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 .
答案 0 :(得分:0)
这是您问题的间接解决方案,因为我无法解决同一问题。
问题的根源可能与从Dockerfile创建Docker映像的主机环境有关。具体来说,启动安装本地软件包的R实例可能无法访问本地软件包的存储路径。
对我来说,解决方案是避免使用本地软件包。将任何本地存储库移动到远程存储库,并在Dockerfile中引用它们。例如
RUN R -e "devtools::install_github('dmanuge/shinyFilesWidget') ; system('echo 14')"
然后,重建您的Docker映像并相应地运行它。虽然这不是直接的解决方案,但我已达到调试的关键阈值,需要继续进行下去。 :)