
VSCode をバージョンアップしたら古い Docker コンテナに接続できなくなった時の対処法
はじめに
アノテーション テクニカルサポート兼Webサイト管理をしている Shimizu です。
日々の業務で VSCode(Visual Studio Code) エディタを用いてローカル環境に構築した Docker コンテナ上のWebコンテンツ更新を行なっています。
最近 VSCode をアップデートしたことで、古いコンテナ環境に接続できなくなってしまう事象に遭遇したため、その際の対処法を備忘として記事にします。
環境情報
筆者の環境は以下の通りです。
Mac 端末上に Rancher Desktop で Docker 環境を導入し、Amazon Linux 2 のコンテナに VSCode で接続してwebコンテンツを更新しています。
- macOS: 15.4.1
- Rancher Desktop: Version 1.10.0
- コンテナ OS: Amazon Linux 2
対象のwebサイトはレガシーなフレームワークを使用している関係上、OS 環境のバージョンアップがすぐには難しい状況です。
問題の概要
VSCode でコンテナに接続する際に毎回「Visual Studio Code でサポートされていない OSバージョンに接続しようとしています。」という警告メッセージが出ていましたが「許可」を選択すれば接続できていたため、特に問題にしていませんでした。
ところがある日、VSCode をバージョン: 1.99.3 にアップデートしてからコンテナに接続しようとしたところ、以下のメッセージが表示されました。
「許可」の選択肢がなくなっている!
「リモートを閉じる」しか選択肢がない!!
「詳細情報」で VSCode の公式サイトを確認すると、どうやらバージョン 1.99 からは接続先の OS が一定要件を満たしていないと接続できなくなったようです。
Remote Development FAQ より抜粋(機械翻訳):
VS Code リリース 1.99(2025 年 3 月)以降、VS Code で配布されるビルド済みサーバーは、glibc 2.28 以降をベースにした Linux ディストリビューションとのみ互換性があります。これには、Debian 10、RHEL 8、Ubuntu 20.04 などが含まれます。
上記によると接続先コンテナの Linux ディストリビューション、もしくは glibc ライブラリをバージョンアップすれば解決しそうですが、筆者の場合は前述のように使用しているwebフレームワークの制約上、OS のバージョンアップが難しい状況です。
対処方法
コンテナ側の OS バージョンアップはできない前提で、以下の 3 パターンの方法を試したところ、エラーを回避して接続できました。以下に順番に紹介します。
方法1. VSCode のバージョンダウン
下記サイトを参考にさせていただき、VSCode を以前のバージョン(1.98.2)に切り戻してみました。
参考: VSCodeバージョンダウン手順と自動更新を無効化する設定 | ぶきっちょのモノづくりブログ
すると以前の「サポートされていない OS バージョンに接続しようとしています」という警告が出るものの、許可すれば接続はできる状態に戻りました。
ただしこの方法だと VSCode のバージョンアップをすれば同様の問題が再発するため、根本的な解決にはなりません。
方法2. エディタを VSCode から Cursor に置き換える
エディタを VSCode を元に開発された「Cursor」に置き換えることで、エラーを回避できるか試してみました。
すると VSCode と同様に OS がサポートされていない旨の警告は出るものの「Allow」をクリックするとコンテナに接続できました。
VSCode に導入していた拡張機能が引き継がれているため使用感はほぼ同じで、AI チャットもデフォルトで装備されているのでいい感じです。
ただし Cursor のバージョンを確認すると、ベースとなる VSCode のバージョンが「1.96.2」と表示されていました。
おそらく Cursor が今後バージョンアップされてベースとなる VSCode のバージョンが 1.99 以降に上がると、やはり問題のコンテナに接続できなくなると予想されます。
方法3. エディタを用いずにターミナルから直接コンテナに接続
エディタを用いずに、Docker コンテナを起動しているターミナルから以下コマンドを実行して、直接コンテナ環境にアクセスしてみました。
docker exec -it <コンテナ名> /bin/bash
この方法なら OS のバージョンを問わずにコンテナに接続でき、コンテンツの更新も可能でしたが、やはり VSCode 等のエディタ無しでコマンドラインからファイル更新を行うのはかなり厳しいものがありました。
結論
上記を検討した結果、今回は取り急ぎ方法2(Cursor エディタへの置き換え)を採用することにしました。
とはいえ将来的に Cursor エディタがバージョンアップされた際に同様の問題が発生するため、いずれは接続先コンテナの環境更新も必要になると考えています。
もし筆者のように「OS 環境のバージョンアップはできないが、どうしてもコードエディタで接続したい」という状況になった場合、上記の方法で回避が可能です。
ですが、やはり最終的に開発環境は定期的にバージョンアップしておきましょう、というお話でした。
機会があれば、開発環境のバージョンアップ手順も記事にできればと思います。
この記事がどなたかの参考になれば幸いです!
参考資料
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。