自分用めも

初心者ちっくなプログラムネタを中心に、自分用の覚え書きをメモっていくための場所です。

VSCode + WSL2で、Dockerコンテナ内のGitHub Copilotが動かなくなった話

事象

趣味の開発中、以下のエラーが出てCopilotさんが応答しなくなった。
これまでは問題はなかったが、突然発生した。

Chat took too long to get ready. Please ensure you are signed in to GitHub and that the extension GitHub.copilot-chat is installed and enabled.

ログイン系の不具合ではなさそう

ググりまくり、色々試す。
かなり久々に、ググりまくるという行動をした気がする…
我ながらAIさんにだいぶ依存している。

ググった結果では基本的にはキャッシュ消せという話が多く、以下を試したが改善しない。

  • ログアウト→ログインする
  • 拡張機能をアンインストール→インストールする

問題はDockerコンテナ内からの通信

調査する中でDockerコンテナ外(WSL2上)では普通に応答することに気が付き、WSL2下のVSCodeからCopilotさんに(結局)質問した。

Copilot(GPT-5.1)さんのトラブルシューティング

VSCodeの「出力」パネルのエラーを確認してください

今まで、コンソールのターミナル以外のタブをあまり見たことがなかったかもしれない…。
確認すると、

Error: getaddrinfo EAI_AGAIN api.github.com

コンテナから外部APIに接続できていない。
DNS解決に失敗しているとのこと。

コンテナ内で次を確認してみてください:

curl https://api.github.com
cat /etc/resolv.conf

確認すると、

curl https://api.github.com
curl: (6) Could not resolve host

cat /etc/resolv.conf
nameserver 192.168.xx.xx

DNS設定が192.168~になっている。

「コンテナを再起動してみて下さい」という指示に従い、再起動した所事象が改善(解決)した。
改善したところから事象を振り返ると、2つ目の別のコンテナを起動したときから事象が発生した気がする。
つまり、2つめのコンテナにより、Dockerが割り当てたDNS設定が壊れていた?

DNS設定を問題が起きない形に修正する

docker-composeのapp直下にGoogleとCloudflareの公開DNSを設定。
これで今後も恐らく問題なし。

services:
  app:
    dns:
      - 8.8.8.8
      - 1.1.1.1