19
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Posted at

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

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

ブログ

Docker-hub

#環境構築
##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関連の記事もアップしていきたいです。

19
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
19
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?