【问题标题】:Customizing RStudio environment in Docker container在 Docker 容器中自定义 RStudio 环境
【发布时间】:2018-09-15 00:22:07
【问题描述】:

我在 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 镜像中的新层?

【问题讨论】:

  • 我找到了解决方案。 RStudio 在我安装的同一驱动器中创建特殊文件夹。因此,如果您使用相同的文件夹重新启动容器,所有自定义设置都会保留。

标签: r docker rstudio


【解决方案1】:

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

与许多流行的 IDE 不同,rstudio 设置不存储在用户可访问的透明 json 中,尽管 they are working on it

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

  • 键绑定:/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      

2020 年新品

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

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

【讨论】:

  • 作为复制的替代方法,您还可以将卷映射到.config 文件夹,或挂载本地文件夹作为绑定。这可以很容易地与配置它的 docker-compose.yml 结合使用。有关更多详细信息,请参见此处:docs.docker.com/storage/volumes/… 我建议还考虑映射 .config 文件夹和 /etc/rstudio 文件夹以获取更多设置
  • 我正在尝试 -v /home/.config:/home/.config 其中 /home/.config 包含我在主机上的个人 rstudio/rstudio-prefs.json 文件。不知何故,我无法安装到容器上的 /home/.config 中。我可以将它安装到 /home/rstudio 的任何位置,但不能安装在上面。有什么建议吗?
  • 我解决了这个问题。没有意识到我需要绑定到容器中的 home/rstudio/.config
【解决方案2】:

澄清亚历山大对他自己帖子的评论:

  1. 运行你的容器:docker run -p 8787:8787 -v /home/cummingssg/code:/home/rstudio/code rocker/verse
  2. 转到 localhost 并像往常一样更改 RStudio 的外观
  3. 退出容器:使用 control-C 或 docker stop
  4. 查找上一个容器的名称:docker ps -a
  5. 重启容器,外观不变:docker start container_name*

(*步骤 4 中最近的项目有图像摇杆/诗歌)

谢谢,亚历山大

【讨论】:

  • 问题是一旦退出,这个配置就会丢失。
猜你喜欢
  • 2018-05-13
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 2014-12-08
  • 2017-07-10
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多