Linux

【WSL】「開発コンテナーに再接続しています」というループを解消したい

takahide

おはようございます。タカヒデです。

WSLでコンテナに接続する際、「開発コンテナーに再接続しています」という無限に続くループが発生しました。

この事象を解決することができたので方法を紹介していきます。

事象:「開発コンテナーに再接続しています」という無限ループ

今回事象が起きた環境は以下の通りです。

  • WSL2 + Docker環境
  • 「フロントエンド:Next.js」と「バックエンド:Django」を別コンテナで同時起動

この状態で「yarn dev」でNext.jsを実行すると以下の表示が発生します。

VSCodeの右下で「開発コンテナー:Untitled Node.js projectに再接続しています…」の表示。

そして「切断されました。再接続を試みています…」の表示。

ここまで来たら、実行されることはありません。

ちなみに、今回の事象は【実装で学ぶフルスタックweb開発】という技術書の「第6章 バックエンドの実装とフロントエンドとのシステム連携」において発生しました。

フロントエンドからバックエンドのデータを参照しようとした際に起こった事象です。

原因:WSLに割り当てられているメモリ不足

原因は単純なモノでした、「WSLに割り当てられているメモリ不足」です。

もともと私のPCは安いものを買ったのでメモリ8GB。

そしてデフォルト設定のままWSLを構築したのみ。

まずは現時点のWSLに割り当てられたメモリを確認してみます。

WSLを立ち上げ、ターミナルで以下を実行します。

free -h

WSLに割り当てられたメモリは「3.5GB」、そしてNext.jsを実行しなくても「1.8GB」使っている状況だったんですね。

対策:WSLに割り当てるメモリの上限を増やす

では実際に、WSLに割り当てるメモリの上限を増やしていきましょう。

①「.wslconfig」ファイルの作成

エクスプローラーから、「C:\Users\terat」直下に「.wslconfig」というファイルを作成します。

「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」と出てきても「はい」を選択してください。

②割り当てるメモリの設定

作成した「.wslconfig」を開き、割り当てるメモリを設定していきます。

以下のテキストを追加して保存してください。

[wsl2]
memory=5GB
processors=4

私は5GBを割り当てていますが、ご自身のPC本体のメモリに応じて変更してください。

③WSLを再起動

WSLを再起動してください。

④WSLに割り当てられたメモリが増えているか確認

最後に正しくメモリが増えているか確認してみましょう。

サイドWSLを立ち上げ、ターミナルで以下を実行します。

free -h

こんな感じで、元々「3.5GB」だったメモリが「4.8GB」に増えていることが分かりますね。

実際に「フロントエンド:Next.js」と「バックエンド:Django」の連携ができているのかも確認してみます。

うん。
問題なさそうですね。

以上が「開発コンテナーに再接続しています」というループを解消する方法
および、WSLのメモリを増やす方法でした。

なお、私はこの事象が発生した際に、WSLのメモリ不足という考えに至らず、コードの誤りをずっと探し続けていました…

お恥ずかしいかぎりですが、誰かの参考になれば幸いです。

お疲れさまでした。

ABOUT ME
タカヒデ
タカヒデ
ITを楽しく勉強中
通信会社の企画職で働く30代 非エンジニアでありながら半分趣味でITエンジニアリングやプログラミングを学習中 IT初心者が楽しいと思えるように発信することを目指しています ↓Xもやっているのでフォローしてね
記事URLをコピーしました