在Docker容器中自定义RStudio环境

时间:2018-04-05 08:46:34

标签: r docker rstudio

我在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环境进行一些自定义。特别是,我将Tools / Global选项/编辑器主题更改为'Pastel on Dark'。我应用了此选项,但仅在容器处于活动状态时才会保留。当我重新启动容器时,自定义选项全部消失。

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

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

是否可以在dockerfile中预定义全局选项作为泊坞窗图像中的新图层?

2 个答案:

答案 0 :(得分:1)

要清除亚历山大对自己帖子的评论:

  1. 运行容器:docker run -p 8787:8787 -v / home / cummingssg / code:/ home / rstudio / code rocker / verse
  2. 转到本地主机,像往常一样更改RStudio的外观
  3. 退出容器:使用control-C或docker stop
  4. 查找先前容器的名称:docker ps -a
  5. 重新启动容器,它将具有相同的外观:docker start container_name *

(*第4步中最新的项目带有图像摇杆/诗歌)

谢谢亚历山大

答案 1 :(得分:1)

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

与许多流行的IDE不同,尽管they are working on it,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