例えば次のようなディレクトリ構成のプロジェクトで、node_modules
だけ除外しつつその他はすべてDockerコンテナにマウントしたいといった場合を想定する。
.
├── docker-compose.yml
├── node_modules … ここだけDockerコンテナに置きたくない
├── package.json
├── src
└── yarn.lock
まず、普通にマウントするdocker-compose.ymlを書く。この状態では当然node_modulesもマウントされる。
docker-compose.yml
services:
app:
image: node
volumes:
- .:/app
次に、適当な名前のボリュームを作る。
docker-compose.yml
+volumes:
+ hoge:
services:
app:
image: node
volumes:
- .:/app
最後に、/app/node_modules
にそのボリュームをマウントするようにする。
docker-compose.yml
volumes:
hoge:
services:
app:
image: node
volumes:
- .:/app
+ - hoge:/app/node_modules
これでホストマシン側のnode_modulesとコンテナのnode_modulesの中は同期されなくなる。