【问题标题】:Custom R Source package in DockerDocker 中的自定义 R 源程序包
【发布时间】:2019-10-21 17:09:30
【问题描述】:

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', dependencies=FALSE, verbose=TRUE, repos=NULL, type='source')" 它没有安装。

我通过sudo docker build -t myRApp s . 运行 docker 构建 我收到以下错误消息

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
system (cmd0): /usr/lib/R/bin/R CMD INSTALL
Warning: invalid package ‘InfrastructureR_0.1.4.tar.gz’
Error: ERROR: no packages specified
Warning message:
In install.packages("InfrastructureR_0.1.4.tar.gz", dependencies = FALSE,  :
  installation of package ‘InfrastructureR_0.1.4.tar.gz’ had non-zero exit status

那么如何在 Docker 中安装自定义的 R 源码包

【问题讨论】:

  • 乍一看,这与 Docker 无关。您是否尝试在 Linux 系统上从源代码安装软件包?也许在虚拟图像中?会发生什么?

标签: r docker ubuntu-18.04


【解决方案1】:

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

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

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

Docker 文档中的更多内容:

【讨论】:

    【解决方案2】:

    我认为需要将包复制到容器内,以便容器可以访问它。 (或在 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/

    【讨论】:

      猜你喜欢
      • 2017-09-29
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      相关资源
      最近更新 更多