2018年5月13日日曜日

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

Visual Studio CodeはMicrosoft製のテキストエディターです。
XRDPもインストールされているので、リモートデスクトップから接続することができます。ユーザはubuntu、パスワードもubuntuです。

〇Visual Studio Codeの画面


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

config.yml
#cloud-config

package_upgrade: true

hostname: lxdxfcevscode
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'
  - 'wget -O vsc.deb https://go.microsoft.com/fwlink/?LinkID=760868'
  - 'dpkg -i vsc.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 lxdxfcevscode /bin/bash

〇コンテナの停止
lxc stop lxdxfcevscode

〇コンテナの削除
lxc delete lxdxfcevscode


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

0 件のコメント:

コメントを投稿