この記事で解決すること
Errno::EEXIST in Hoge#moge
File exists @ dir_s_mkdir - /Railsapp/tmp/cache/assets/sprockets/v4.0.0/**
このエラーを Windows 10 April 2018 Update 以降のWindowsにおいて解決する
原因
Sprockets の使っているキャッシュ用ディレクトリ名が大文字と小文字を区別しているが、WindowsのAPIはディレクトリの大文字と小文字を区別しない事でディレクトリ名がコンフリクトしていることが原因
解決
管理者権限でPowerShellを起動します。
PS C:\Development\Railsapp> fsutil.exe file SetCaseSensitiveInfo .\tmp\cache\assets\sprockets\v4.0.0\
おわり。
個人開発や開発環境が全員Windowsで統一されているなどの環境であれば、下記で紹介しているSprocketsとDockerの設定を変える方法も有効だと思います。
複数人が参加しているプロジェクト開発などにおいては、標準(Unix環境)にWindows環境が合わせていく方がよりコード・設定の複雑さを減らし良い解決だと思っているので、上記の解決をしてみました。
関連・類似記事
今回の手法とは異なる手法で解決している記事があるので、そちらも参考になるかもしれません。
SprocketsのCache先を変更することで対応している
Issue
余談
Windows NTはいつまでMS-DOS時代のしがらみから抜けられないのだろうか・・・。
この記事がどなたかの役に立てば幸いです。