今日はvSphere関係無い、開発環境ネタです。
code-serverって何ぞや?
ブラウザ上で動作する Visual Studio Code。
https://github.com/codercom/code-server
coder.com というクラウド IDE サービスを提供していた Coder が
code-server としてオープンソースで公開したもの。
VSCode 自体 Electron ベースなのでブラウザベースでもほとんど違和感なく動作するし、 Extension もほとんどがそのまま動作する。
まだ alpha 版ということらしいので、
触っているとバグがあったり、認証周りは突貫っぽさがあったりするが、
個人用途の開発環境としては全然使える。
Install
といってもパッケージやインストーラがあるわけではなく、
github から適当な release を拾ってきて、解凍して実行するだけ。
https://github.com/codercom/code-server/releases
% curl -fsSL https://github.com/codercom/code-server/releases/download/1.792-vsc1.33.1/code-server1.792-vsc1.33.1-linux-x64.tar.gz | tar zx % cd code-server1.792-vsc1.33.1-linux-x64/ % ./code-server
環境によっては
libstdc++が古いと動かないです… CentOS7 のデフォルトバージョンだとアウト。
% ./code-server ./code-server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./code-server) ./code-server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./code-server)この場合はgccを make して libstdc++ を入れ替える必要あり。
これでブラウザからhttps://【code-server実行したホスト】:8443
を開く。
パスワードは実行コンソール上に↓のような感じでているはずなので
INFO code-server v1.792-vsc1.33.1 INFO Additional documentation: http://github.com/codercom/code-server INFO Initializing {"data-dir":"/home/vhoge/.local/share/code-server","extensions-dir":"/home/vhoge/.local/share/code-server/extensions","working-dir":"/home/vhoge/code-server1.792-vsc1.33.1-linux-x64","log-dir":"/home/vhoge/.cache/code-server/logs/20190414025039640"} INFO Starting webserver... {"host":"0.0.0.0","port":8443} WARN No certificate specified. This could be insecure. WARN Documentation on securing your setup: https://github.com/codercom/code-server/blob/master/doc/security/ssl.md INFO INFO Password: 291d1362713deb52d14192c9 ★ コレ ★ INFO INFO Started (click the link below to open): INFO http://localhost:8443/ INFO INFO Starting shared process [1/5]... INFO Connected to shared process
パスワードを入力してやれば code 本体が表示され操作できるようになる。
設定周り
ブラウザから設定したり Extension 導入したものは
ユーザディレクトリ下の以下にファイルとして残っている。
% pwd /home/vhoge/.local/share/code-server % ls Backups/ User/ extensions/ languagepacks.json rapid_render.json self-signed.key CachedExtensions/ dependencies/ globalStorage/ machineid self-signed.cert
設定や extension を別ホストでという時は
上記のディレクトリを持っていくとよい。
それと cache (というかアプリログ?) が以下に吐かれている。
/home/vhoge/.cache/code-server
こちらは移行する必要はなさげ。問題時のデバック等に。。。
daemon化
いちいちサーバにログインして code-server を立ち上げ、
コンソール残しっぱなしというのもわずらわしいので daemon 化。
[Unit] Description = code-server [Service] ExecStart = /usr/local/bin/code-server -P hogehoge -d /home/vhoge/.local/share/code-server /home/vhoge/work Restart = always Type = simple User = vhoge Group = users [Install] WantedBy = multi-user.target
% sudo vim /etc/systemd/system/code-server.service % sudo systemctl daemon-reload % sudo systemctl start code-server
-P
は初回アクセス時のパスワード。この辺はもうチョイ改善してほしいな…
(ps
でパスワード見えるとかいけてない)
-d
はユーザーデータディレクトリ。.local
とか.cache
とかのアレ。
最後のパスはデフォルトワークディレクトリ。
daemon 化で指定しないと/
とかで動いてしまうので、
ユーザのホームディレクトリ下を指定しておくのがよさげ。