Visual Studio Code Server
Visual Studio Code Serverは、デスクトップPCや仮想マシン (VM) などのリモート開発マシンで実行できるサービスです。これにより、SSHを必要とせずに、ローカルのVS Codeクライアントからどこからでもリモートマシンに安全に接続できます。
VS Code Serverとは?
VS Codeでは、ユーザーが最も生産的になれる環境をシームレスに活用できるようにしたいと考えています。VS Code Remote Development拡張機能を使用すると、Windows Subsystem for Linux (WSL)、SSH経由のリモートマシン、および開発コンテナーでVS Codeから直接作業できます。これらの拡張機能はリモート環境にサーバーをインストールし、ローカルのVS Codeがリモートのソースコードやランタイムとスムーズにやり取りできるようにします。
現在、スタンドアロンの「VS Code Server」を提供しています。これは、リモート拡張機能で使用されているのと同じ基盤となるサーバー上に構築されたサービスで、インタラクティブなCLIやvscode.devへの安全な接続を容易にするなど、いくつかの追加機能が備わっています。
アーキテクチャ
ローカルかリモートか、デスクトップかブラウザかを問わず、エディターをどのように使用しても統一されたVS Codeエクスペリエンスを提供したいと考えています。
VS Code Serverへのアクセスは、既存のcode
CLIに組み込まれています。
CLIは、VS Codeクライアントとリモートマシンとの間にトンネルを確立します。トンネリングは、あるネットワークから別のネットワークへデータを安全に送信します。
VS Code Serverのエクスペリエンスには、いくつかのコンポーネントが含まれています。
- VS Code Server: VS Codeのリモートエクスペリエンスを可能にするバックエンドサーバー。
- Remote - Tunnels拡張機能: ローカルのVS Codeクライアントに自動的に読み込まれ、リモートマシンへの接続を容易にします。
シナリオ
VS Code Serverを使用すると、VS Codeを次のような新しい方法で使用できます。
- SSHサポートが制限されている、またはウェブベースのアクセスが必要なリモートマシンでの開発。
- iPad/タブレットやChromebookなど、VS Codeデスクトップのインストールをサポートしていないマシンでの開発。
- すべてのコードがブラウザのサンドボックスで実行されるという、クライアント側のセキュリティ上のメリットを体験できます。
はじめに
トンネリングを有効にするには2つの方法があり、それぞれのドキュメントで詳しく説明されています。
試してみること
ライセンスとその他のコマンド
VS Code Serverを最初に実行すると、ライセンスの条項が表示されます。VS Code Serverのライセンスはこちらで確認できます。
* Visual Studio Code 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).
code -h
を実行するとCLIのその他のコマンドを、特にトンネリングコマンドはcode tunnel -help
を実行すると調べることができます。
拡張機能のコマンド
CLIと同様に、VS Code Remote Tunnels拡張機能には、VS Codeでコマンドパレット (F1
) を開き、Remote Tunnelsと入力することで調べることができる追加コマンドがあります。Remote Tunnelsのドキュメントで詳細を確認できます。
テレメトリー
テレメトリを無効にしたい場合は、VS Code Serverを起動する際に--disable-telemetry
を渡すことができます: code tunnel --disable-telemetry
。あるいは、エラーのみを収集するなど、初期のテレメトリレベルを指定したい場合は、--telemetry-level
の後にレベル (例: error
) を渡すことができます。
CLIを介してテレメトリが無効化されていない場合、VS Code Serverは正常に接続された後、クライアントのテレメトリ設定 (vscode.devまたはデスクトップでのテレメトリ設定) を尊重し始めます。
よくある質問
VS Code Serverは、複数のユーザーが同じリモートインスタンスにアクセスできるように設計されていますか?
いいえ、サーバーのインスタンスは単一のユーザーによってアクセスされるように設計されています。
VS Code Serverをサービスとしてホストできますか?
いいえ、VS Code Serverライセンスで明記されている通り、サービスとしてホストすることは許可されていません。
VS Code Serverが使用するエンドポイントのリストはありますか?
制限された環境で作業している場合は、VS Code Serverが以下の記事にリストされているエンドポイントにアクセスできることを確認する必要があるかもしれません。
- https://vscode.dokyumento.jp/docs/setup/network#_common-hostnames
- https://vscode.dokyumento.jp/docs/remote/ssh#_what-are-the-connectivity-requirements-for-the-vs-code-server-when-it-is-running-on-a-remote-machine-vm
他に拡張機能の制限はありますか?
ウェブベースのVS Codeインスタンスを使用する場合、純粋なUI拡張機能はサポートされていません。これについては、拡張機能作成者向けのリモート開発ガイドで詳しく知ることができます。
ブラウザの制限はありますか?
ブラウザで作業する場合、いくつかの制限と構成手順を考慮する必要があります。これについては、Web版VS Codeのドキュメントで詳しく読むことができます。
VS Code Serverを最新の状態に保つにはどうすればよいですか?
リモートマシンに接続した際に、VS Codeで更新が利用可能であれば通知が届き、その通知から直接更新できます。
キーリングストレージに関するエラーが表示されます。どうすればよいですか?
設定同期には、設定同期サーバーに対する認証が必要です。対応するシークレットはサーバーに永続化されます。これには、サーバー上にキーリングを設定する必要があります。キーリングが設定されていない場合、VS Code Serverはサーバーに保存されているインメモリシークレットにフォールバックします。この場合、シークレットはサーバーの存続期間中のみ永続化されます。
このIssueは、より詳細な情報を提供し、トラブルシューティングに役立つかもしれません。それでも問題が発生する場合は、お気軽にVS Code Remote GitHubリポジトリに新しいIssueを提出してください。
フィードバックやIssueを報告するにはどこにすればよいですか?
問題やフィードバックがある場合は、VS Code Remote GitHubリポジトリにIssueを提出してください。Issueを提出する際は、詳細なログを含めてください。これは、VS Code Serverを-v
フラグで起動することで有効にできます: code -v tunnel
。
code-server
ラベルでVS Code ServerのIssueのみを絞り込むことができます。