Closed12

VSCode Server がきになる

waddy_uwaddy_u

まずは手元で検証

ここを見ながら。

https://code.visualstudio.com/docs/remote/vscode-server#msdynttrid=mvGj1JZf-yXnaZu5xUHAKi8psbBIWXlk_NP6c5nx55k

ローカルで試してみる。

wget -O- https://aka.ms/install-vscode-server/setup.sh | sh
vscode-server

認証。

その後、リモートアクセス用のURLが表示されるため、そこへアクセスするとブラウザ版のVSCodeが表示できる。

途中、GitHubへログインすることもあってか、すでにGitHubアカウントで同期された状態。

waddy_uwaddy_u

どこにデプロイするか

コンテナに詰めて 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

このへん。

https://code.visualstudio.com/docs/remote/vscode-server#_can-i-host-vs-code-the-vs-code-server-myself

code-server serve-local

ローカルから server できるかわりに、HTTPS + SSL終端とか自分で設定しないといけないらしい。逆にそれくらいでいいの?Webアプリ屋が設定するならまあいけるのかなって感じですかね。

code-server serve

VSCode 側のドメインからトンネルして利用できる。「SSHのかわりにしたい」くらいの位置づけだったら、こっちのほうがいいかもしれない。

waddy_uwaddy_u

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

アクセスできた。あとはこれをリモートでできれば…

waddy_uwaddy_u

Cloud Run 2nd gen にデプロイしてみたい

GCS FUSE 使ってみたいんよな。

https://cloud.google.com/run/docs/tutorials/network-filesystems-fuse

うーんでもやっぱりネットワーク経由だと厳しそう。あと、一回ローカルディスク(Cloud Run の場合はインメモリ)に保存されてそれから同期するというのもメモリ容量が厳しい。

https://cloud.google.com/storage/docs/gcs-fuse#notes

Cloud Storage FUSE のレイテンシは、ローカル ファイル システムよりもはるかに高くなっています。
各 I/O ストリームは、gsutil とほぼ同じ速さで実行されます。
きつくて草

ローカル ストレージ: 新しいまたは変更されたオブジェクトは、閉じるか同期されるまで、ローカルの一時ファイルにその全体が保存されます。サイズの大きいファイルを扱う場合には、ファイルの一時ファイルがコピーできる容量をローカルに用意してください
yarn install でしにそう

waddy_uwaddy_u

App Engine Flexible へ切り替えていく

チョット気乗りしないけど、App Engine でも Dockerfile 使えるので試していく。Cloud Run でも 永続ディスクSSDが使えるようになるといいですね。

waddy_uwaddy_u

もうGCE でいいんじゃないかな

ボリュームもマウントできるということでGCEにしてみた。

waddy_uwaddy_u

iPadで開けない…

iPadのブラウザだとローディングがおわらずなにもはじめられない…
Safari、Chrome, Edge ぜんぶだめ。どういうことなのよぉ。これができないなら、まだ実用は難しい…けど動画だとやってるんですよね。

https://www.youtube.com/watch?v=q2viJSYyKio

waddy_uwaddy_u

今のところの結論

  • 専用のサーバーたてるくらいなら 手元の Mac で起動したほうが便利そうだ
  • iPad からでも使えるようになった!

https://github.com/microsoft/vscode-remote-release/issues/7034

今後:長期利用レビュー

  • Macのスリープからの復帰とか…
  • iPadから使うときのショートカットキーとか…

が、思い当たる懸念事項

このスクラップは2022/12/05にクローズされました