在Docker容器中自定义RStudio环境

Ale*_*der 6 r rstudio docker

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

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

docker run -d -p 8787:8787 -v //c/Users/<My name>/Documents/R/Rprojects:/home/rstudio/ rocker/rstudio
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

是否可以dockerfile在docker image中将全局选项预定义为新层?

asa*_*ica 6

如果像我一样使用临时容器(使用--rm标志),则容器在停止时会被删除。这是一件好事,因为它每次都能确保 100% 干净的环境,但这意味着不会在会话之间保留设置。

与许多流行的 IDE 不同,rstudio 设置并未存储​​在用户可访问的透明 json 中,尽管他们正在处理它

解决方法是将设置复制到正确的位置:

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

要设置它:

  1. 在容器中启动 rstudio
  2. 设置您想要的设置
  3. 将上面列出的 2 个文件备份到主机上的某个位置。
  4. 每次启动 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      
Run Code Online (Sandbox Code Playgroud)

2020 年新品

在 RStudio v1.3 中,有一个~/.config/rstudio/rstudio-prefs.json控制所有设置的新文件。您可以在机器之间复制它或手动编辑它。

RStudio Server PR 中的更多详细信息已1.3 版中移植到 RStudio。