【R】rockerを使わずにUbuntuイメージから旧バージョンのR(Rstudio Server)コンテナを作成
2023年7月でMRAN(Micorosoft R Application Network)の各種サービスが終了したため、rcokerイメージで旧バージョンのR(Rstudio Server)環境を構築するのに四苦八苦したので、Ubuntuイメージからコンテナを作成しました。
Docker Hubのアカウントは作っていないのでここで公開。色々なサイトを参考にしてつぎはぎだらけですが、何とか思ったように動いています。
前提条件
Docker Engineはインストール済み。
DockerやRで、コマンドを使った操作ができる。
手順・方法
Dockerfile
FROM ubuntu:20.04
ENV TZ=Asia/Tokyo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir /home/share
RUN chmod 777 /home/share
RUN apt-get update && apt-get upgrade
RUN apt-get install -y r-base gdebi-core libssl-dev libcurl4-openssl-dev libxml2-dev wget init cmake
RUN wget https://download2.rstudio.org/server/focal/amd64/rstudio-server-2023.12.1-402-amd64.deb
RUN gdebi rstudio-server-2023.12.1-402-amd64.deb --n
RUN apt-get install -y locales
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 install -y \
fonts-ipaexfont \
fonts-noto-cjk
# ユーザー追加
RUN useradd -m rstudio && \
echo "rstudio:rstudio" | chpasswd
参考サイト
docker-compose.yml
個人的な都合でRstudio Server 4.3.2が8787ポートで動作しているので、3.6.3は8788に変更しています。
command:は不要?かもしれません。
version: '3'
services:
rstudio3.6.3:
build:
context: .
dockerfile: Dockerfile
container_name: rstudio3.6.3
ports:
- 8788:8787
volumes:
- rstudio:/home/rstudio
tty: true
stdin_open: true
privileged: true
command: /sbin/init
volumes:
rstudio:
動作確認
ブラウザからアクセス
ログイン後
なぜか、一部文字化けがありますがセッションリスタートで直ります(原因は探っていません)。
ターミナル
rockerでは使えないターミナルも動作します。
注意点
非rootユーザーでRstudioを使用しているため、インストールしたパッケージはユーザーディレクトリに保存されます。
パッケージのインストールで追加のコマンドやアプリケーションのインストールが必要になる場合もありますが、後からコマンドやアプリケーションをインストールした場合はdocker commitを使ってイメージを保存する必要があります。
Rのバージョンが古いため、パッケージのインストールでURLを指定しないといけない場合もあります。
現在(2024.3月)時点ではまだUbuntu 20.04のリポジトリが使えますが、サポート終了後はイメージ内のリポジトリリストの変更が必要になると思います。
ディスカッション
コメント一覧
まだ、コメントがありません