docker 图片中的 RStudio 不处理某些库
RStudio in docker image does not deal with some librairies
我在使用 docker rstudio-image rocker/rstudio
时遇到问题
在 https://www.rocker-project.org/ 上(docker R 容器)。由于我是 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
在 /opt/local/bin
。所以我尝试在 运行ning 时链接这些 pkg 路径
图像(看看当我玩图像环境时会发生什么
在 RStudio 中),将选项 -v
/opt/local/lib/pkgconfig:/home/rstudio/lib/pkgconfig -v
/opt/local/bin:/home/rstudio/bin
添加到 运行 命令。但它不起作用:出于某种原因
我在 RStudio 中没有看到 lib/pkgconfig
的内容...
而且 RStudio 实例不接受 root/sudo 命令所以我不能
在RStudio终端
中使用apt-get
等工具
所以,有什么诀窍?
您笔记本电脑上的库(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
)。
我在使用 docker rstudio-image rocker/rstudio
时遇到问题
在 https://www.rocker-project.org/ 上(docker R 容器)。由于我是 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
在 /opt/local/bin
。所以我尝试在 运行ning 时链接这些 pkg 路径
图像(看看当我玩图像环境时会发生什么
在 RStudio 中),将选项 -v
/opt/local/lib/pkgconfig:/home/rstudio/lib/pkgconfig -v
/opt/local/bin:/home/rstudio/bin
添加到 运行 命令。但它不起作用:出于某种原因
我在 RStudio 中没有看到 lib/pkgconfig
的内容...
而且 RStudio 实例不接受 root/sudo 命令所以我不能 在RStudio终端
中使用apt-get
等工具
所以,有什么诀窍?
您笔记本电脑上的库(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
)。