2018年5月13日日曜日

LXDでRStudioとXfce Desktop環境、XRDPをインストールしたコンテナ(Ubuntu16.04)を構築する

RStudioはR言語のIDEです。
XRDPもインストールされているので、リモートデスクトップから接続することができます。ユーザはubuntu、パスワードもubuntuです。

〇RStudioの画面


〇構築方法
LXDで以下のコマンドを実行して、RStudioとXfce Desktop環境インストールされたコンテナを構築します。
lxc init ubuntu:16.04 lxdxfcerstudio
lxc config set lxdxfcerstudio user.user-data - < config.yml
lxc start lxdxfcerstudio

config.yml
#cloud-config

package_upgrade: true

hostname: lxdxfcerstudio
manage_etc_hosts: true

write_files:
  - path: /tmp/.xsessionrc
    content: |
      export LANG=ja_JP.UTF-8
      export GTK_IM_MODULE=fcitx
      export QT_IM_MODULE=fcitx
      export XMODIFIERS="@im=fcitx"
      sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/ubuntu/.config/fcitx/profile
      fcitx -r -d &

  - path: /etc/default/keyboard
    content: |
      XKBMODEL="pc106"
      XKBLAYOUT="jp"
      XKBVARIANT=""
      XKBOPTIONS=""
      BACKSPACE="guess"

runcmd:
  - 'sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list'
  - 'localectl set-locale LANG=ja_JP.UTF-8'
  - 'localectl set-keymap jp106'
  - 'apt-get update'
  - 'apt-get -y install software-properties-common'
  - 'add-apt-repository ppa:hermlnx/xrdp'
  - 'apt-get update'
  - 'echo "export LANG=ja_JP.UTF-8" >> /home/ubuntu/.bash_profile'
  - "echo 'ubuntu:ubuntu' | chpasswd"
  - 'apt-get -y install xrdp fcitx-mozc xubuntu-desktop language-pack-ja language-pack-ja'
  - 'im-config -n fcitx'
  - 'mv /tmp/.xsessionrc /home/ubuntu'
  - 'chown -R ubuntu:ubuntu /home/ubuntu'
  - 'echo "deb https://cran.rstudio.com/bin/linux/ubuntu $(lsb_release -cs)/" | sudo tee -a /etc/apt/sources.list'
  - "gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9"
  - "gpg -a --export E084DAB9 | sudo apt-key add -"
  - "apt-get update"
  - "apt-get -y install r-base"
  - "apt-get -y install libjpeg62"
  - "wget https://download1.rstudio.org/rstudio-xenial-1.1.383-amd64.deb"
  - "dpkg -i rstudio-xenial-1.1.383-amd64.deb"
  - 'fcitx -r -d &'

final_message: "completed."

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=3389 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

〇コンテナに入る
lxc exec lxdxfcerstudio /bin/bash

〇コンテナの停止
lxc stop lxdxfcerstudio

〇コンテナの削除
lxc delete lxdxfcerstudio


○関連情報
・RStudioに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿