1
1

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 5 years have passed since last update.

VS Codeをクラウド上にデプロイ

Last updated at Posted at 2019-04-07

概要

デバイスに依存しない開発環境を構築したく、VS Codeをクラウド上に置く方法を検証した。

案1 - Linuxサーバー + X11を使う

構成

Dockerコンテナ上にLinuxサーバーを立て、クライアントのMacBook上にはXQuartzを起動しておく。リモートのVS Codeを起動した際はX11経由で画面を転送して、あたかもローカルでVS Codeを操作しているかのように扱う。

環境

ホストOS

  • macOS: 10.14.4
  • Docker: 18.09.2

クライアントOS

  • Ubuntu 18.04.2 LTS

手順

XQuartz起動

XQuartzを起動しておく。

X11セットアップ

UbuntuのDockerイメージをプルし、起動してX11の設定を行う。

$ docker pull ubuntu
$ docker run --rm -it ubuntu /bin/bash
$ apt-get update && apt-get install -y x11-apps
$ export DISPLAY=host.docker.internal:0.0

別のターミナルを開き、以下のコマンドを実行する。

$ xhost +localhost

Dockerコンテナ上にて以下のコマンドを実行する。ホストOS上にウィンドウが立ち上がり、Xロゴが表示されることを確認する。

$ xlogo

VS Codeインストール

VS Codeのdocsを参考に、インストールを行う。

$ apt-get install -y curl gpg
$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
$ install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
$ sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
$ apt-get install -y apt-transport-https
$ apt-get update
$ apt-get install -y code # or code-insiders
$ apt-get install -y libx11-xcb1 libasound2 # 不足しているライブラリ

VS Code起動と動作確認

VS Codeはrootユーザーでは実行できないため、適当なユーザーを作成する。作成したユーザーにスイッチしてVS Codeを起動し、ウィンドウが立ち上がることを確認する。

$ useradd -m hoge -s /bin/bash
$ su - hoge
$ code

所感

この時点ではLinuxサーバーがホストOS上で動作している。リモートで動作させるためにはSSHの設定が必要だが、その前に、この段階で確認したVS Codeの操作感を記す。

  • 描画のラグが大きい。
    • 特に大きくスワイプした場合の画面のスクロール量は期待を下回り、ストレスを感じる。
  • 基本的なキーボードショートカット(Ctrl+C, Ctrl+Vなど)が使えない。
    • ホストOS上のそれを再現しようとすると余計な手間がかかるだろう。
  • フルスクリーン化できない。
    • X11の設定からフルスクリーンを有効化すると、ウィンドウが消えてしまう。

案2 - Coderを使う

CoderはVS CodeのSaaS版のようなツールである。Dockerイメージ、あるいはバイナリファイルをデプロイすることでVS CodeライクなツールがWebブラウザ経由で使えるようになる。

セットアップ

公式サイトに記載のDockerコマンドを実行すると、Dockerイメージのダウンロードと起動を行う。特筆することは無く、非常にシンプルである。

所感

操作のレスポンスは軽快でストレスを感じない。しかし、オリジナルのVS Codeではないため一部の機能が使えず、特に以下の点に不便さを感じた。

  • 一部の拡張機能は検索でヒットしないため、代わりにVSIXファイルのインポートする。さらに、正常に動作させるために一手間が必要。

    • PlantUML
      • レンダリングのためにJAVAが必要なので docker exec でコンテナにログイン後、$ apt-get install default-jre を実行する。
  • 一部の拡張機能が使えない。

  • ターミナルの分割ボタンが機能しない。

    • v1.621(あるいは以前)より対応。

全体の感想

現時点ではどちらの案もローカル版のVS Codeと同程度の快適さは得られず、実用的ではない。前者は(特に)描画の高速化が可能であれば、より実用的になるだろう。後者はリリースされて間もないツールであるため、今後の改善に期待したい。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?