wsl上のDocker container内でnpm install実行時にEAI_AGAINというエラーが出たときの対処法

wsl上のDocker container内でnpm installした時にEAI_AGAINというエラーが出ました。様々な記事に書かれている対処法を試しましたが、最終的にこの記事を参考にすることで解決することが出来ました。npm install error – getaddinfo EAI_AGAINregistry.npmjs.org:433

エラーの内容

写真はコンテナ内でnpm install実行時に出たエラーです。

どうやらDNSの設定がうまくいってなくて、名前解決が出来ずにエラーになっているみたいです。

解決方法

docker daemonのDNSの設定を変更することで解決できます。

wsl上で/etc/docker/daemon.jsonを作り、以下の内容を書きます。

1つ目は自分のネットワークにおけるDNSサーバーのIPアドレスを、2つ目はGoogleのDNSサーバーのアドレスを入力します。

{
  "dns": ["192.168.0.1", "8.8.8.8"]
}

1つ目の自分のネットワークにおけるDNSサーバーのIPアドレスは、powershellでipconfig /allを実行すると分かります。

設定を書き込めたら、sudo docker service restartでdockerを再起動します。

エラーが解消されたことを確認

もう一度Dockerコンテナ内でnpm installを実行してみます。

以下が実行結果でnpm installが機能していることがわかります。