Web版VSCodeがDockerコンテナをWASM環境で起動、Webブラウザ内ローカルマシンとして利用可能に。拡張機能「vscode-container-wasm」登場

今回は「Web版VSCodeがDockerコンテナをWASM環境で起動、Webブラウザ内ローカルマシンとして利用可能に。拡張機能「vscode-container-wasm」登場」についてご紹介します。

関連ワード (外部、必要、拡張機能等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


WindowsやMacなどのデスクトップPCでVisual Studio Code(以下VSCode)を利用して開発をする場合、同じローカルマシン上でDockerコンテナのLinux環境を起動し、VSCodeのターミナルで接続して操作することは、開発環境としてよくあることだと思います。

これと同じことをWebブラウザ版のVSCodeでも実現する、すなわちWeb版VSCodeが同一Webブラウザ上にWebAssembly化したDockerコンテナを起動し、Web版VSCodeからローカルマシンとして接続し利用できる、実験的実装を実現したVSCodeの拡張機能「vscode-container-wasm」が登場しました。

VSCodeの拡張機能一覧から選択してインストール可能になっています。

下記は「vscode-container-wasm」のデモ画面です。Web版VSCodeの右下のターミナル画面で接続されているのは、Webブラウザ内のローカルマシンとして起動している、DockerコンテナによるLinux環境です。このLinux環境でC言語のコードのコンパイルと実行に成功していることが示されています。

このWebブラウザ上で実行されているLinux環境は、DockerコンテナイメージがWebAssemblyに変換され、実行されているものです。

fig

「vscode-container-wasm」の開発者はNTTの徳永航平氏です。徳永氏は、DockerコンテナイメージをWebAssemblyに変換する「container2wasm」の開発者でもあります。そして今回のVSCodeの拡張機能「vscode-container-wasm」も、container2wasmの技術が利用されています。

参考:DockerコンテナイメージをWebAssemblyに変換、Webブラウザ上での実行も可能にする「container2wasm」バージョン0.3が登場

「vscode-container-wasm」は昨年(2023年)12月に徳永氏が発表しましたが、今月(2024年2月)ベルギーのブリュッセルで行われたオープンソースのイベント「FOSDEM 2024」での徳永氏によるセッション「vscode-container-wasm: An Extension of VSCode on Browser for Running Containers Within Your Browser」で、詳しい解説とデモが行われました。この記事では、このFOSDEMでの説明を基に「vscode-container-wasm」を紹介していきましょう。

WebAssemblyでCPUをエミュレーション、Linuxコンテナを起動

vscode-container-wasmがWebブラウザ上でDockerコンテナを起動する仕組みは、基本的に「container2wasm」と同じです。

WebAssembly環境上でCPUエミュレータのBochesもしくはTinyEmuを用いてx86_64もしくはRISC-Vをエミュレーションし、その上でLinuxとDockerコンテナを実行しています。

fig

このときVSCodeからWebAssembly/WASI環境をホストするために、マイクロソフトの「vscode-wasm」を利用しています。

DockerコンテナイメージをWebAssembly環境に読み込む方法

Webブラウザ上のWebAssembly環境にDockerコンテナを読み込む方法は2つ用意されています。

1つ目は、あらかじめDockerコンテナをcontainer2wasmでWebAssemblyファイルに変換しておき、それをHTTPサーバから読み込む方法です。

HTTPサーバで公開されたURLをvscode-container-wasmの設定ファイルに記述しておくことで、自動的にWebブラウザ上のWebAssembly環境に読み込まれて起動されます。

fig

2つ目の方法は、Dockerコンテナのコンテナイメージをそのまま、イメージレジストリもしくはHTTPサーバから読み込む方法です。

イメージレジストリが、オリジンをまたいだリクエストのレスポンスに対応する、CORS (Cross-Origin Resource Sharing:オリジン間リソース共有)対応であれば、読み込みたいDockerコンテナのイメージをvscode-container-wasmの設定ファイルに書いておくことで、読み込んで起動してくれます。

しかし現時点で主要なイメージレジストリはCORSに対応していないため、この方法を選択するにはCORSに対応したプライベートなイメージレジストリなどを立ち上げる必要があります。

もしくは、OCIイメージレイアウトに対応したフォーマットでファイルシステム上にコンテナイメージを配置し、HTTPサーバで公開します。そのURLをvscode-container-wasmの設定ファイルに書いておくとvscode-container-wasmが読み込んで起動してくれます。

fig

このようにして、Web版VSCodeが自動的にDockerコンテナイメージを外部から読み込み、Webブラウザ内ローカルマシンとして起動し、ターミナルから接続してコンパイルやデバッグなどに利用できるようになります。

この技術はChromebookやiPadなど、あまり自由度の高くないOSでの開発環境の構築などに有用であるのと同時に、プラットフォームとしてのWebブラウザの可能性を拡大するものとなりそうです。

さらに詳しい技術的な解説がFOSDEMのWebサイトで公開されているため、興味のある方はぜひそちらもご覧ください。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
トヨタ出資の自動運転Pony.aiがカリフォルニア州から無人運転テスト許可を取得
モビリティ
2021-05-23 08:30
IoT開発のゼロワン、クリニックや病院、介護へと適用範囲を拡大
IT関連
2024-01-11 19:31
NTTデータグループが決算、鍵を握るデータセンター事業と海外事業
IT関連
2023-11-09 06:30
NECとICRC、覚書を締結– AIを用いて地雷源を予測
IT関連
2021-06-21 00:53
クアルトリクスが新機能など発表、「AIでもっとビジネスを人間らしく」とCEO
IT関連
2024-05-03 00:05
川崎フロンターレ、競技場の感染対策でトイレの混雑状況を可視化
IT関連
2022-06-08 16:28
今後のIT運用で不可欠なAI–MLOpsの可能性
IT関連
2022-06-14 20:09
日経平均3万円でも割安、令和の日本株がさらに飛躍すると予想する理由
IT関連
2021-06-15 12:43
ガートナージャパンが「日本における未来志向型インフラ・テクノロジのハイプ・サイクル:2023年」発表
業界動向
2023-08-18 11:21
Robloxは開発者向けアクセラレーター講座で同社プラットフォームの新たな可能性を引き出す
ゲーム / eSports
2021-02-08 15:18
EU、AIめぐる初の規則案を発表–監視社会を防げないとの批判も
IT関連
2021-04-22 14:29
UQコミュニケーションズ、基地局建設業務システムの本番/DR環境をクラウド化–運用コストを25%削減
IT関連
2023-06-30 02:11
松吉医科器械、「AS/400」で動く基幹システムをクラウドERPで刷新
IT関連
2023-12-12 21:17
ISMAP簡易版「ISMAP-LIU」開始–政府がクラウドリストを提示する背景
IT関連
2022-08-09 21:53