6/20にTokyo.RでLTしてきました。
www.slideshare.net
で、ゴミ箱アイコンの方から「Dockerイメージつくれば?」と言われたので、つくってみました。
なにか変なところがあればGithubの方にIssueお願いします。
使い方
docker pull
まずイメージを落としてきます。
$ docker pull yutannihilation/r-jekyll
docker run
走らせます。8787はRStudio用、4000は後述するようにJekyll用です。
$ docker run -p 8787:8787 -p 4000:4000 yutannihilation/r-jekyll
RStudioにログイン
ブラウザから http://localhost:8787/ を開いて、ユーザ名もパスワード「rstudio」でログインできます。
servr::jekyll()
すぐ試せるようにyihuiさんのknitr-jekyllレポジトリをクローンしてあるので、以下のコマンドを実行すれば右下のViewerにブログが出てきます。
servr::jekyll("knitr-jekyll")
...と言いたいところだったんですが、やってみると分かりますけどうまくスタイルが当たらず変な表示になります。。
これはRStudio Server特有の問題です。詳しい説明は端折りますが、RStudio Desktopだと
http://localhost:4321/path/to/file
みたいなURLが、RStudio Serverだと
http://localhost:8787/p/4321/path/to/file
になってしまうせいで、CSSのパスが違うようになってしまうのです。。Alas!
jekyll serve
むりやり動かすには、servr:jekyll()
ではなくて、本物のjekyllをコマンドラインから使います。
servr::jekyll("knitr-jekyll", serve = FALSE) system('cd knitr-jekyll; jekyll serve --host 0.0.0.0 &')
http://localhost:4000/knitr-jekyll/ にアクセスすると、ちゃんとスタイルが当たったサイトが見えるはずです。
Jekyllを止める
え、止めるとき? ...うーん、こんな感じでやるしか。。
system('pkill jekyll')
まとめ
RStudio Desktopで手元でやるのがいいと思います!