我在Windows 10 Pro的Docker容器中使用RStudio。
我使用从https://hub.docker.com/u/rocker/提取的RStudio rocker/rstudio图像。

要启动容器,我执行了命令:

docker run -d -p 8787:8787 -v //c/Users/<My name>/Documents/R/Rprojects:/home/rstudio/ rocker/rstudio

然后,我可以通过以下链接从浏览器访问服务器:
http://localhost:8787/。一切正常。

我想要做的是对RStudio环境的一些自定义。特别是,我将“工具”/“全局选项”/“编辑器”主题更改为“暗色上的粉彩”。我应用了此选项,但是只有在容器还活着的时候它才会持续存在。当我重新启动容器时,自定义选项全部消失了。

我的项目保存在运行容器时指示的文件夹中,但全局选项未保存。

因此,如何将全局选项也保存在硬盘上。也许我需要在驱动器上公开另一个文件夹,该文件夹将连接到RStudio保存全局选项的容器文件夹?

是否可以将dockerfile中的全局选项预定义为docker镜像中的新层?

最佳答案

如果像我一样使用临时容器(使用--rm标志),则该容器在停止时会被删除。这是一件好事,因为它可以确保每次都100%保持干净的环境,但是这意味着在每个 session 之间都不会保留设置。
与许多流行的IDE不同,rstudio设置虽然存储在they are working on it中,但并未存储在用户可访问的透明json中。
解决方法是将设置复制到正确的位置:

  • 键绑定(bind):/home/rstudio/.R/rstudio/keybindings/rstudio_bindings.json
  • 常规设置(例如主题):/home/rstudio/.rstudio/monitored/user-settings

  • 进行设置:
  • 在容器
  • 中启动rstudio
  • 设置所需的设置
  • 在主机上的某个位置备份上面列出的2个文件。
  • 每次启动rstudio时都复制配置文件-请参见下面的脚本。

  • 我创建了一个快速启动快捷方式,该快捷方式指向以下易于修改的脚本。它启动一个名为rstudio的容器,并复制我已备份的设置(在我的情况下为/home/asac/projects/rstudio-config)
    #!/bin/bash
    
    echo Running rstudio on localhost:8787
    docker run -d --rm -p 8787:8787 -e PASSWORD=<pwd> \
    -v /home/asac/projects:/home/rstudio/projects \
    -v /home/asac/data:/home/rstudio/data \
    --name rstudio asachet/shiny-dev
    
    echo Copying over rstudio settings
    docker exec rstudio mkdir /home/rstudio/.R/rstudio/keybindings -p
    docker cp /home/asac/projects/rstudio-config/user-settings rstudio:/home/rstudio/.rstudio/monitored/user-settings
    docker cp /home/asac/projects/rstudio-config/rstudio_bindings.json rstudio:/home/rstudio/.R/rstudio/keybindings/rstudio_bindings.json
    
    echo Launching browser
    xdg-open http://localhost:8787
    
    2020年新品
    在RStudio v1.3中,有一个新文件~/.config/rstudio/rstudio-prefs.json可以控制所有设置。您可以在机器之间复制它或手动编辑它。
    详细信息in the RStudio Server PR已在1.3版中移植到RStudio。

    关于r - 在Docker容器中自定义RStudio环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49667945/

    10-13 07:45