Docker中的自定义R源程序包

时间:2019-06-04 14:55:44

标签: r docker ubuntu-18.04

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源程序包

2 个答案:

答案 0 :(得分:3)

将tar.gz文件与Dockerfile放在同一目录中是不够的。要使本地文件可用于通过映像创建的Docker容器,可以使用COPY指令。

COPY指令从<src>复制新文件或目录,并将它们添加到路径<dest>的容器的文件系统中:

COPY [--chown=<user>:<group>] <src>... <dest> 

更多有关docker docs:

答案 1 :(得分:1)

我认为需要将包装复制到容器内,以便容器可以访问它。 (或在Docker可以访问的位置卷中)

在容器内运行的

R找不到文件。

https://www.digitalocean.com/community/tutorials/how-to-share-data-between-the-docker-container-and-the-host

https://docs.docker.com/storage/bind-mounts/