新しくDockerコンテナを作成してRStudio Serverを起動すると、外観だとかキーバインドの設定は当然だけど既定値になっている。コンテナ作成の度にこれらをいちいち設定するのは面倒なので、RStudio Desktopの設定を反映させるようにしたい。
そもそもRStudioの設定はどこにあるのか?
Global Optionsから設定できる項目は以下のディレクトリ内に保存されている。DesktopとServerで若干パスが異なる(注:以下はmacOSの場合)。
- RStudio Desktop:
~/.rstudio-desktop/monitored/user-settings
- RStudio Server:
~/.rstudio/monitored/user-settings
キーバインドだけは別で、DesktopもServerも以下の場所に.jsonで保存されている。
~/.R/rstudio/keybindings
ということは、docker run
の際に-v
で上記ディレクトリをリンクさせてやれば設定が反映される…と思いきや、コンテナを一度起動しないと~/.rstudio
が作成されないらしく、上手くいかない。
~/.rstudio/monitored/user-settings
入りのDockerイメージを作成する
無いのであれば作ってしまおう。rocker/rstudio
をベースにするとして、以下の様な内容でDockerfile
を作成する。もちろん、既存のものがあれば下部の2行を追記してもいい。
Dockerfile
FROM rocker/rstudio
RUN mkdir -p /home/rstudio/.rstudio/monitored/user-settings/
RUN chown -R rstudio:rstudio /home/rstudio/.rstudio
作ったらdocker build
する。Dockerfile
のあるディレクトリで
docker build -t my-rstudio .
ビルドが終わったら、設定ファイルのディレクトリをリンクさせてコンテナを起動する。
docker run \
-v ~/.rstudio-desktop/monitored/user-settings:/home/rstudio/.rstudio/monitored/user-settings \
-v ~/.R/rstudio/keybindings:/home/rstudio/.R/rstudio/keybindings \
-p 8787:8787 my-rstudio