[docker]Error: Cannot find module ‘timers/promises'[起動しない]

ある日、コンテナをビルドしなおしてみるとエラーとなってコンテナが起動しない。

先日までは起動していたのだが、突然。

Error: Cannot find module 'timers/promises'

モジュールがないらしいのだが、どこ?なぜ?

npmのバージョン確認などのコマンドはエラーとなるので確認できず。

いつものようにgoogle先生に。

同じエラーの投稿を発見。

回答のコメントがありました。

npm install -g npmthere is a new npm version (which is 10) that might break stuff, so try installing npm install -g npm@\^9

訳すると

npm install -g npm新しい npm バージョン (10) があり、機能が壊れる可能性があるため、npm install -g npm@\^9 をインストールしてみてください

npmのバージョン。。。

2023/9/18 にnode.js 20.7.0がリリースされていて、npmのバージョンが10.1.0になっている。どうやらこれが原因のようです。

DockerFileの以下の記述を

RUN npm install -g npm

以下に書き換え。

RUN npm install -g npm@^9

無事にコンテナが起動しました。

めでたし、めでたし。