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を本体のマウントから外してしまうとエディタの補完が効かなくなってしまったりとか副作用も起こってしまうかもしれません。理解した上でやるべきかやらないべきかご判断いただければと思います。

株式会社イプシロンソフトウェアでは一緒に働く仲間を募集しています
2 いいね!
2 いいね!
同じタグの記事
今週のランキング
株式会社イプシロンソフトウェアからお誘い
この話題に共感したら、メンバーと話してみませんか?