扩展rstudiodocker映像

扩展rstudiodocker映像,r,linux,docker,rstudio,R,Linux,Docker,Rstudio,我搜索了很长一段时间,尝试了许多建议的解决方案,但没有找到解决我问题的最终方案,我希望我能把这个问题说得足够具体,因为我对整个docker的世界都很陌生 好的,下面是: docker容器在离线服务器上运行(基于centOS,我认为这无关紧要) 我们在本地(在Windows机器上,也不重要)提取docker映像,然后在脱机服务器上上载并启动它们 对于rstudio(rocker),这有时会带来不便,因为新软件包无法通过install.packages('pkgname')下载,而必须作为tar

我搜索了很长一段时间,尝试了许多建议的解决方案,但没有找到解决我问题的最终方案,我希望我能把这个问题说得足够具体,因为我对整个docker的世界都很陌生

好的,下面是:

  • docker容器在离线服务器上运行(基于centOS,我认为这无关紧要)

    • 我们在本地(在Windows机器上,也不重要)提取docker映像,然后在脱机服务器上上载并启动它们

    • 对于rstudio(rocker),这有时会带来不便,因为新软件包无法通过install.packages('pkgname')下载,而必须作为tar.gz下载并具有所有依赖项,然后上载和安装;这很有效

    • 然而,有些软件包还需要安装另一个软件,然后我们的变通方法就停止工作了

    • 在特定情况下,我想安装spacyr pcakage,它下载并安装miniconda

    • 它在本地工作,我的工作流程将(编辑)

  • docker拉力摇杆/rstudio

  • docker容器运行-d-e密码=-p 28787:8787摇臂/rstudio

  • docker exec-ti一些名字/bin/bash

  • R

  • install.packages('spacyr')

  • library(spacyr)

  • spacy\u install()

  • q()

  • 退出
  • docker停止使用某些\u名称
  • docker提交一些名称rstudio\u spacyr
  • --在这里,我将使用服务器上的
    docker save
    docker load
  • sudo docker run-d-e PASSWORD=…--rm-p-e ROOT=TRUE 38787:8787
    rstudio_spacyr
现在的问题是:spacyr可以通过
库(spacyr)
加载,但是上次运行的
Spacyu install()
现在不再显示错误消息:

Finding a python executable with spaCy installed...
Error in set_spacy_python_option(python_executable, virtualenv, condaenv,  : 
  spaCy or language model en is not installed in any of python executables.
但是,如果我进入Rstudio终端并键入
sudo ls/root/miniconda/bin
,我会看到所有东西都在那里。因此,我的提交似乎起了作用,但是我没有root访问权限,因为没有sudo的命令会导致
ls:cannotaccess'/root/miniconda/bin':权限被拒绝

奇怪的是,如果我用
sudor
从Rstudio终端启动R,那么一切都会正常工作。不幸的是,我们需要它在Rstudio中工作,而不仅仅是在R中

我想做的(我知道其中有些事情很可怕):

  • 使用chmod更改根文件夹的权限

  • 从Rstudio运行
    系统(“sudo-i”)
    ->会导致tty错误消息

  • 从Rstudio运行
    system('su-')
    ->结果是
    su:必须从终端运行
现在我真的不知道如何解决这个问题,我将非常感谢能得到的任何帮助

我怀疑我可能必须在docker提交步骤中更改某些内容?或者我真的应该操纵权限和用户吗?也许我还可以看看miniconda是如何安装的,并将其更改为不在root中?但是怎么做呢

非常感谢您的阅读和评论