nodeのバージョンをv18に上げたところ、テストのDB環境を構築するDockerと通信が出来ずにエラーになる場合が発生した。
結論
node v17よりdnsの名前解決のためのオプションの --dns-result-order
のデフォルトの設定が変わっていて、ipv6のIPアドレスを取得する場合が発生するようになった。
localhost
にアクセスする際、IPアドレスを [::1]
と判断されると、ipv6でアクセスできない場合はアクセスできない。
簡易的な解決方法としては下記の2つとなる。hosts
ファイルを書き換える選択肢も無い事にはない。
localhost
で指定している部分を127.0.0.1
とする。node
実行時オプションに--dns-result-order=ipv4first
を設定する- または
NODE_OPTIONS
環境変数に--dns-result-order=ipv4first
を設定する
- または