tl;dr;
Docker Desktop for Windows から WSL2のUbuntu20.04環境上でのDockerに切り替えた際に結構ハマったのでその忘備録にメモ
/etc/resolv.conf
に nameserver 8.8.8.8
を追記する
コンテナ環境内で npm install
を使用したとき、
npm ERR! code EAI_AGAIN
npm ERR! syscall getaddrinfo
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/autoprefixer failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org
な感じでエラーが出た。
どうもDNS解決ができなくてハマっていたらしい。
原因は この記事 にあるように WSL環境のnameserver設定がおかしくなっていることがあるようだ。
対策として、/etc/resolv.conf
に nameserver 8.8.8.8
を追記する
コンテナ環境のIPアドレスを参照しておく
コンテナ内のサーバーにアクセスしようとしてlocalhost:{port}
でアクセスしようとしたら接続できなくてハマった。
原因は上のリンクにもある通り、WSL2に仮想ネットワークアドレスが割り振られるため。
WSL2のシェルで hostname -I
などでIPアドレスを確認してlocalhost
の代わりに使用する
ほかの方法としては、
未検証だがWSL2で起動したサーバーに外部の端末からアクセスする方法もあるようだ