InfrastructureR_0.1.4.tar.gz是我在Windows中使用RStudio创建的R源程序包,它工作正常。 但是当我尝试通过以下命令在docker文件中使用它时 InfrastructureR_0.1.4.tar.gz与Docker文件位于同一位置
Docker在ubuntu 18.x计算机上运行
RUN R -e“ install.packages('InfrastructureR_0.1.4.tar.gz',dependency = FALSE,verbose = TRUE,repos = NULL,type ='source')” 它没有安装。
我通过sudo docker build -t myRApp s运行docker build。 我收到以下错误消息
将软件包安装到“ / usr / local / lib / R / site-library” (因为未指定“ lib”) 系统(cmd0):/ usr / lib / R / bin / R CMD INSTALL 警告:无效的软件包“ InfrastructureR_0.1.4.tar.gz” 错误:ERROR:未指定软件包 警告信息: 在install.packages(“ InfrastructureR_0.1.4.tar.gz”中,dependencies = FALSE ,: 软件包“ InfrastructureR_0.1.4.tar.gz”的安装退出状态为非零
那么我如何在Docker中安装自定义R源程序包
答案 0 :(得分:3)
将tar.gz文件与Dockerfile放在同一目录中是不够的。要使本地文件可用于通过映像创建的Docker容器,可以使用COPY
指令。
COPY
指令从<src>
复制新文件或目录,并将它们添加到路径<dest>
的容器的文件系统中:
COPY [--chown=<user>:<group>] <src>... <dest>
更多有关docker docs:
答案 1 :(得分:1)
我认为需要将包装复制到容器内,以便容器可以访问它。 (或在Docker可以访问的位置卷中)
在容器内运行的R找不到文件。