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 サポートが制限されているリモートマシン、または Web ベースのアクセスが必要なリモートマシンでの開発。
- 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).
CLI のその他のコマンドを調べるには、code -h
を実行し、特にトンネリングコマンドを調べるには、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 は、複数のユーザーが同じリモートインスタンスにアクセスするように設計されていますか?
いいえ、サーバーのインスタンスは、1 人のユーザーがアクセスするように設計されています。
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
他に拡張機能の制限はありますか?
Web ベースの VS Code インスタンスを使用する場合、純粋な UI 拡張機能はサポートされていません。詳細については、拡張機能作成者の Remote Development ガイドを参照してください。
ブラウザーの制限はありますか?
ブラウザーで作業している場合、考慮すべき特定の制限事項と構成手順があります。詳細については、VS Code for the Web ドキュメントを参照してください。
VS Code Server を最新の状態に保つにはどうすればよいですか?
更新プログラムが利用可能な場合、リモートマシンに接続すると VS Code に通知が表示され、この通知から直接更新できます。
キーリングストレージに関するエラーが表示されます。どうすればよいですか?
設定同期には、設定同期サーバーに対する認証が必要です。対応するシークレットはサーバーに永続化されます。これには、サーバーにキーリングを設定する必要があります。キーリングが設定されていない場合、VS Code Server はサーバーに保存されたインメモリシークレットにフォールバックします。この場合、シークレットはサーバーのライフタイム中にのみ永続化されます。
この問題は、より詳細なコンテキストを提供し、トラブルシューティングに役立つ場合があります。それでも問題が発生する場合は、VS Code Remote GitHub リポジトリに新しい問題を遠慮なく提出してください。
フィードバックを提供したり、問題を報告したりするにはどうすればよいですか?
問題やフィードバックがある場合は、VS Code Remote GitHub リポジトリに問題を提出してください。問題を提出する際は、詳細ログを含めてください。詳細ログは、-v
フラグを指定して VS Code Server を起動することで有効にできます: code -v tunnel
。
code-server
ラベルを使用して、VS Code Server の問題のみをフィルター処理できます。