Docker映像中的RStudio不处理某些库

时间:2019-04-05 08:52:33

标签: docker rstudio

我在使用建议的docker rstudio-image rocker/rstudio时遇到问题 在https://www.rocker-project.org/上(R的docker容器)。由于我是Docker和RStudio的初学者,因此我怀疑问题是由我引起的,不应该报告错误:

  • 我使用“ Docker Quickstart Terminal”打开了一个合适的终端
  • 使用docker run -d -p 8787:8787 -e DISABLE_AUTH=true -v <...>:/home/rstudio/<...> --name rstudio rocker/rstudio运行图像的地方
  • 然后在浏览器中,我在地址http://192.168.99.100:8787上获得了一个不错的RStudio实例
  • ,但是在这种情况下,我无法安装多个软件包,例如xml2。我收到消息:

    Using PKG_CFLAGS= 
    Using PKG_LIBS=-lxml2
    ------------------------- ANTICONF ERROR ---------------------------
    Configuration failed because libxml-2.0 was not found. Try installing:
     * deb: libxml2-dev (Debian, Ubuntu, etc)
     * rpm: libxml2-devel (Fedora, CentOS, RHEL)
     * csw: libxml2_dev (Solaris)
    If libxml-2.0 is already installed, check that 'pkg-config' is in your
    PATH and PKG_CONFIG_PATH contains a libxml-2.0.pc file. If pkg-config
    is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
    R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
    --------------------------------------------------------------------
    ERROR: configuration failed for package ‘xml2’
    * removing ‘/usr/local/lib/R/site-library/xml2’
    Warning in install.packages :
      installation of package ‘xml2’ had non-zero exit status
    

我不知道图像上是否xml2,但是笔记本电脑上的文件libxml-2.0.pc确实存在于目录/opt/local/lib/pkgconfig中,并且pkg-config在{{1中}}。所以我尝试在运行时链接这些pkg路径 图像(看看我在图像环境中玩耍时发生了什么 在RStudio中),将选项/opt/local/bin添加到run命令。但这不起作用:出于某种原因 我在RStudio中看不到-v /opt/local/lib/pkgconfig:/home/rstudio/lib/pkgconfig -v /opt/local/bin:/home/rstudio/bin的内容...

RStudio实例也不接受root / sudo命令,所以我不能 在RStudio终端中使用lib/pkgconfig之类的工具

那么,诀窍是什么?

1 个答案:

答案 0 :(得分:1)

便携式计算机(docker的主机)上的库不适用于docker容器。您应该使用所需的库创建自定义图像,并像这样创建Dockerfile

FROM rocker/rstudio

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    libxml2-dev # add any additional libraries you need

CMD ["/init"]

在上面我添加了libxml2-dev,但是您可以根据需要添加任意数量的库。

然后使用此命令构建映像(您需要在创建Dockerfile的目录中执行以下命令):

docker build -t my_rstudio:0.1 .

然后您可以启动容器:

docker run -d -p 8787:8787 -e DISABLE_AUTH=true --name rstudio my_rstudio:0.1

(您可以在上面添加任何其他参数,例如-v)。