【Docker】docker compose upするとnode_modulesがマウントされて消える問題

NuxtやExpressの環境をDockerで構築する際に、Dockerfileでinstallしたnode_modulesがdocker compose upする際に、ホストマシンのファイルがマウントされることによって消えてしまうという問題にぶつかりました。

Dockerfile

Dockerfileはこんな感じです。

  • package.jsonとpackage-lock.jsonをDockerコンテナにcopy
  • npm install
  • node_modulesがコンテナ内に作成される

というイメージを作成するようになっています。

この状態で、

上記のようなdocker-compose.ymlを実行すると、ホストマシンのファイル(node_modulesはない)がDockerコンテナにマウントされて、Dockerfileでinstallするように指示をしたnode_modulesをdeleteしてしまいます。

解決法

解決法はすごく簡単で、node_modulesの中身をvolumeで管理すればよいだけでした!

ABOUTこの記事をかいた人

新卒でノマドワーカー(webデザイナー)として独立し、半年で月収100万円を達成する。その後、事務所を売却(バイアウト)したり、Youtuber(最高月間視聴回数109万回、チャンネル登録者1万人)をしたり、Openrecの公式配信者としてゲーム生実況をしたり、ベンチャー企業のCOOをしたり、パラレルキャリアを歩んできました。 2019年にミニマムライフコストを不労所得で稼げるようになったため、いまは、お金のことを考えずに、様々な企業でエンジニア修行をさせていただきながら、複数のメディアやアプリとweb制作事務所を運営しています。 趣味は株式投資(米国・日本株メイン)で、トレードを楽しむ日も多いです!