yarnでインストールしてきたnode_modulesを直接フォルダをぶち消して、そこまで作っていたDocker内の環境が壊れてしまいました。
localhostにアクセスできなかったり、動作がエラーになるなど起きるようになりました。
yarnは高速化のために必要なキャッシュをローカルに保存しています。
このせいでDocker内とローカルで差分ができてしまうため、新規にDockerファイルを立ち上げようとするとDocker内で壊れた状態のnode_modulesを再利用されてしまい環境が壊れたままの環境を構築することになってしまいます。
キャッシュするディレクトリパスは以下になります。
yarn cache dir
キャッシュされているnpmリストの確認は以下になります。
yarn cache list
キャッシュクリアは以下になります。
yarn cache clean
私の場合はキャッシュクリアのコマンドをDocker内で行うと
下記のように表示されてしまい失敗してしまいました。消す対象が大きいのか、スペックが低いのか。。。
rm: cannot remove '/usr/local/share/.cache/yarn/v6': Device or resource busy
そしてフォルダパス削除コマンドを打つだけを実行してみると
# yarn cache dir
/usr/local/share/.cache/yarn/v6 ※私の場合のディレクトリパス
# rm -rf /usr/local/share/.cache/yarn/v6
rm: cannot remove '/usr/local/share/.cache/yarn/v6': Device or resource busy
# yarn cache list
yarn cache v1.22.19
Name Version Registry Resolved
Done in 0.10s.
同じように失敗したメッセージが表示されるものの yarn cache list
で確認するとキャッシュは消えていました。
これでキャッシュクリアをなんとかできました。