LoginSignup
18
12

More than 3 years have passed since last update.

Docker-composeによるRStudio環境の構築と管理

Posted at

はじめに

本記事ではRStuido環境の構築方法についてまとめています。せっかくなので簡単に管理したいと考えて、Docker-composeで簡易に管理する方法を調べてました。

参考

下記ページを参考にさせていただきました。

ブログ
- DOCKER-COMPOSE を使って RSTUDIO を管理する
- RStudio Serverのインストール - データ分析勉強会
- Rocker Project

Docker-hub
- rocker/tidyverse

環境構築

Dockerについて

本記事ではDockerについての詳細な解説やインストール方法についての説明は省きます。(他にわかりやすい記事が多数存在するため。)今回はDockerfileとDocker-composeを使用して環境構築を実施します。

Dockefile
Dockerイメージを自作するための設定ファイル(レシピのようなもの)

Docker-compose
Dockerイメージのビルドやコンテナの起動を簡易に実施するためのツール

Dockerfile

DockerhubではRockerというR環境構築のためのイメージファイルが配布されています。その中でも今回はtidyverse系ライブラリが既にインストースされているイメージファイルをベースとして環境を構築します。(tidyverse系ライブラリは非常に便利であるため)

また、グラフ等の凡例に日本語を入れても文字化けが発生しないように日本語フォントもインストールを行います。


# ベースとするイメージ
FROM rocker/tidyverse:3.6.3

# OS環境を日本語ロケールに切り替える

ENV LANG ja_JP.UTF-8
ENV LC_ALL ja_JP.UTF-8
RUN sed -i '$d' /etc/locale.gen \
  && echo "ja_JP.UTF-8 UTF-8" >> /etc/locale.gen \
    && locale-gen ja_JP.UTF-8 \
    && /usr/sbin/update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
RUN /bin/bash -c "source /etc/default/locale"
RUN ln -sf  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# 日本語フォントをインストールする
RUN apt-get update && apt-get install -y \
  fonts-ipaexfont \
  fonts-noto-cjk

Docker-compose

続いてはDocker-composeです。
「environment」において任意のパスワードを設定します。また「volumes」においてホストOSのカレントディレクトリに存在している「R」というディレクトリをマウントしています。マウントすることでRStudio内で作成したファイルがそこに残り、コンテナを削除してもファイルが消えません。


version: '3'
services:
  rstudio:
    build: .
    image: tidyverse:3.6.3_jp
    container_name: tidyverse_jp
    environment: 
      #任意のパスワードを設定する
      - PASSWORD=*****
    ports:
      - 8787:8787
    volumes:
      - ./R:/home/rstudio
    tty: true
    stdin_open: true

環境の立ち上げ

先ほど作成したDockerfileとDocker-composeのファイルが存在するディレクトリにおいて下記コマンドを実行するだけで環境を立ち上げることができます。

docker-compose up -d

コンテナを立ち上げた上下記URLでブラウザに入るとRSstudioの環境に接続することができます。
http://localhost:8787
Usernameはデフォルトは「rstudio」になっており、Passwordに先ほど設定したものを入力することでサインインできます。

スクリーンショット 2020-12-31 11.43.12.png

サンプルコードの実行

日本語フォントのインストールを実施したので、文字化けが発生していないかを確認します。

library(ggplot2)
scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) 
scatter + geom_point(aes(color=Species, shape=Species)) +
  xlab("アイリスのがくの長さ") +  ylab("がくの幅") +
  ggtitle("がくの長さと幅") 

問題なく日本語がプロットされていることが確認できました。

スクリーンショット 2020-12-31 11.49.49.png

Next

今後はR関連の記事もアップしていきたいです。

18
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
12