VSCode Server がきになる
なんだぁ?こいつぅ…
- GitHub Codespace(リポジトリごとのセットアップ)
- Code Server(なんか拡張機能が使えないものがあるらしい)
- Gitpod(似て非なるもの)
純正のサーバーということで期待している。
とりあえずリクエスト済み。
キタキタ
まずは手元で検証
ここを見ながら。
ローカルで試してみる。
wget -O- https://aka.ms/install-vscode-server/setup.sh | sh
vscode-server
認証。
その後、リモートアクセス用のURLが表示されるため、そこへアクセスするとブラウザ版のVSCodeが表示できる。
途中、GitHubへログインすることもあってか、すでにGitHubアカウントで同期された状態。
どこにデプロイするか
コンテナに詰めて Cloud Run 2ng Gen にデプロイしようと思ったけど、インタラクティブな作業があるならばちょっとムズカシイ?それとも、ログ見ながらならできる?コンテナ落ちるたびに、もう一度認証しないといけない?
code-server serve-local
M1 Mac だと失敗する。。。
code-server serve-local
[2022-08-05 14:11:20] info Setting up server...
[2022-08-05 14:11:20] error failed to open zip archive /vscode-server-darwin-arm64-web.zip: invalid Zip archive
code-server serve-local
vs code-server serve
このへん。
code-server serve-local
ローカルから server できるかわりに、HTTPS + SSL終端とか自分で設定しないといけないらしい。逆にそれくらいでいいの?Webアプリ屋が設定するならまあいけるのかなって感じですかね。
code-server serve
VSCode 側のドメインからトンネルして利用できる。「SSHのかわりにしたい」くらいの位置づけだったら、こっちのほうがいいかもしれない。
Dockerfile で起動してみよう
code-server serve
は無理そう
> coder-server serve
info Creating tunnel with the name: es
thread 'main' panicked at 'Your platform or architecture is not supported by our forwarding tool. You may be able to run with `--no-forward`.', /mnt/vss/_work/1/s/launcher/src/server/basis.rs:209:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
code-server serve-local
でチャレンジ
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y \
wget
RUN wget -O- https://aka.ms/install-vscode-server/setup.sh | sh
CMD [ "code-server", "serve-local", "--accept-server-license-terms", "--host", "0.0.0.0", "--port", "8080" ]
起動
> docker run -it --rm -p 8888:8080 vscode-server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
*
Server bound to 0.0.0.0:8080 (IPv4)
Extension host agent listening on 8080
アクセスできた。あとはこれをリモートでできれば…
Cloud Run 2nd gen にデプロイしてみたい
GCS FUSE 使ってみたいんよな。
うーんでもやっぱりネットワーク経由だと厳しそう。あと、一回ローカルディスク(Cloud Run の場合はインメモリ)に保存されてそれから同期するというのもメモリ容量が厳しい。
Cloud Storage FUSE のレイテンシは、ローカル ファイル システムよりもはるかに高くなっています。
各 I/O ストリームは、gsutil とほぼ同じ速さで実行されます。
きつくて草
ローカル ストレージ: 新しいまたは変更されたオブジェクトは、閉じるか同期されるまで、ローカルの一時ファイルにその全体が保存されます。サイズの大きいファイルを扱う場合には、ファイルの一時ファイルがコピーできる容量をローカルに用意してください
yarn install
でしにそう
App Engine Flexible へ切り替えていく
チョット気乗りしないけど、App Engine でも Dockerfile 使えるので試していく。Cloud Run でも 永続ディスクSSDが使えるようになるといいですね。
もうGCE でいいんじゃないかな
ボリュームもマウントできるということでGCEにしてみた。
iPadで開けない…
iPadのブラウザだとローディングがおわらずなにもはじめられない…
Safari、Chrome, Edge ぜんぶだめ。どういうことなのよぉ。これができないなら、まだ実用は難しい…けど動画だとやってるんですよね。
iPad で開けないやつ
ISSUEになってた。しばらくウォッチ。
今のところの結論
- 専用のサーバーたてるくらいなら 手元の Mac で起動したほうが便利そうだ
- iPad からでも使えるようになった!
今後:長期利用レビュー
- Macのスリープからの復帰とか…
- iPadから使うときのショートカットキーとか…
が、思い当たる懸念事項