1
/
5

node_modulesまでDockerでマウントしないほうがいいかもという話

 どうもみなさんこんにちは。株式会社イプシロンソフトウェアで代表をやっております、渡部です。私はメインのマシンではWindowsを使っておりまして(macOSもLinuxも触りますが)、開発はWindows環境で行うことが多いです。まだまだ現役でコードを書いておりますので、現場の人にとって働きやすい環境が整っているかと思います(きっと)。弊社ではご一緒に働いてくれる仲間を探しておりますので、もしご興味ある方がおられましたら下のリンクから話を聞きに来ていただければ喜びます。

WindowsでDockerを使うとディスク関連でトラブることが多い

 WindowsでDockerを使って開発を行っているとディスク関連でトラブることがよく起こります。

 手元で開発するときは開発中のディレクトリそのものをそのままマウントして手元のファイルと同期しながら開発していくことが(私の場合は)多いです。こうすると開発用コンテナの中のファイルをいじったらそのまま手元のファイルに変更が伝播することになるのでコミット漏れなどの問題が起きにくくなります。

 ただ、npmやyarnを実行したときに出力されるnode_modulesディレクトリもマウントされているディレクトリの下にできてしまうことになります。WindowsのDockerで開発用ディレクトリをマウントしたままnpm installだとかを行ってnode_modulesに入れようとするとトラブルが起こってしまうことがあります。どういう感じでエラーが出てくるかはそのときどきですがこんな感じです。

An unexpected error occurred: "EIO: i/o error, copyfile '/usr/local/share/.cache/yarn/v6/npm-bootstrap-icons-1.10.5-5a1bbb1bb2212397d416587db1d422cc9501847c-integrity/node_modules/bootstrap-icons/icons/7-square-fill.svg' -> '/app/node_modules/bootstrap-icons/icons/7-square-fill.svg'".

node_modulesのマウントを外せばいいじゃない

 今回は、あくまでも目的が開発したファイルのコミット漏れを防ぐという意図がありました。そのためにマウントしているディレクトリ配下にnode_modulesが出来てしまい、node_modulesのためにトラブルが頻発しているようであれば、node_modulesのディレクトリだけをマウントから外せばいいかなと思っていろいろ調べてみたらまさにドンピシャの記事がいくつかありました。

 私のケースではこれらの内容を参考にしたところエラーも解消され問題もなくなりました。コードとしてはStack Overflowのものと似せた感じで書いています。

用法用量は守ってください

 今回のわたしのケースではnode_modulesを外すことで特に開発的には問題なくなりました。ただ、環境によってはnode_modulesを本体のマウントから外してしまうとエディタの補完が効かなくなってしまったりとか副作用も起こってしまうかもしれません。理解した上でやるべきかやらないべきかご判断いただければと思います。

Invitation from 株式会社イプシロンソフトウェア
If this story triggered your interest, have a chat with the team?
株式会社イプシロンソフトウェア's job postings
2 Likes
2 Likes

Weekly ranking

Show other rankings
Like 渡部 晋司's Story
Let 渡部 晋司's company know you're interested in their content