0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode Remote-SSH+Dev Container:workspaceファイルを使うメリットと接続の違い

Posted at

概要

VS CodeのRemote-SSHとDev Containers拡張機能を併用して開発環境を構築していると、以下のような違いに気づくことがあります:

  • .code-workspaceファイルを使うと、パスフレーズの入力が1回で済み、即座に開発コンテナへ接続できる
  • 通常の手順(SSH接続→フォルダを開く→コンテナで再度開く)では、パスフレーズの入力が3回必要になる

この挙動の違いを整理し、.code-workspaceを用いる利便性や注意点を解説します.

.code-workspaceとは

.code-workspaceは、VS Codeのワークスペース設定ファイルです.以下の情報などを含めることができます:

  • ワークスペースに含めるフォルダの一覧(folders
  • Remote接続情報(remoteAuthority
  • ワークスペース固有のエディタ設定(settings
{
  "folders": [
    {
      "uri": "vscode-remote://ssh-remote+myserver/home/ubuntu/project"
    }
  ],
  "remoteAuthority": "ssh-remote+myserver"
}

このように記述された .code-workspace を開くと、VS Code は remoteAuthority に従って自動的にSSH接続を行い、リモートの対象フォルダを開きます.

さらに、開いたフォルダに開発コンテナで作成した .code-workspace を開くと開発コンテナへ接続することができます。

.code-workspaceの作り方

vscodeで作成したworkspaceを開きます。(開発コンテナに1度で接続するためには、開発コンテナへ接続した状態にします。)

ファイル -> 名前をつけてワークスペースを保存

スクリーンショット 2025-04-21 19.55.29.png

ローカルを表示します。をクリックし、ローカルに.code-workspaceを保存することができます。

スクリーンショット 2025-04-21 20.05.32.png

作成後に再読み込みを必要とする場合があります。

通常の接続手順との違い

通常手順:

  1. 「Remote-SSH: Connect to Host...」でSSH接続 → パスフレーズ入力①
  2. 「フォルダーを開く」でプロジェクトを開く → パスフレーズ入力②
  3. 「Reopen in Container」でDev Containerに再接続 → パスフレーズ入力③

workspaceファイルを使用した接続:

  1. .code-workspaceファイルを開く → パスフレーズ入力①(初回のみ)

つまり、workspaceファイルを使えば一度の操作でSSH接続+開発コンテナ接続まで完了し、パスフレーズの入力も1回で済みます.

この動作の背景には、.code-workspaceに含まれるremoteAuthority情報がVS Codeにとっての完全なリモート接続情報として機能し、初期化手順を省略できることがあります.

注意点

.code-workspaceファイルをローカルに用意しておくことで、以下のような利便性が得られます:

  • リモート接続と開発コンテナ接続の手順が一括で実行できる
  • 毎回の接続操作が簡略化される(特にVS Codeを再起動した場合)

注意点

  • .code-workspaceファイルはチームで共有しない前提で作成すること(パスやホスト名が個人依存のため)
  • 再構築が必要な場合(Dev Containerの構成変更時)は、自分で「Rebuild Container」を明示的に行う必要がある

Rebuildの必要性と自動化されない理由

.code-workspaceファイルを使用していても、以下のような変更は自動的に反映されません.

  • Dockerfileの編集
  • devcontainer.jsonの変更(postCreateCommand, extensions, containerEnv など)

そのため、開発コンテナの設定を変更した際は、再度 .code-workspaceを作成しなおしてください.

これを行わないと、古いコンテナがそのまま動作し続けてしまうため、変更が反映されず不具合や意図しない挙動の原因になります.

まとめ

  • .code-workspaceを利用することで、リモート+コンテナ開発をワンクリックで完了できるようになります
  • 再構築は手動で必要なので、Dev Containerの設定を更新した際は忘れずRebuildするようにしましょう
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?