На основе какой логики следует принимать решение о создании дополнительных папок в Docker-контейнерах от образов NodeJS?
Сколько я не вижу уроков по Docker, практически везде в контейнере создаются дополнительные папки, в которую кладётся проект. Вот пример: содержимое директорий src и dist:
├── dist
│ └── bundle.js
├── docker
│ └── webpack
│ ├── Dockerfile
│ ├── package.json
│ └── webpack.config.js
├── docker-compose.yml
└── src
├── app.js
└── test.js
нужно зачем-то обязательно положить в папку my_webpack, имя которой "самоочевидное и сразу понятно, зачем она нужна":
version: '3'
services:
webpack:
build: ./docker/webpack
volumes:
- ./src:/my_webpack/src
- ./dist:/my_webpack/dist
- ./docker/webpack/package.json:/my_webpack/package.json
- ./docker/webpack/webpack.config.js:/my_webpack/webpack.config.js
ports:
- 2000:2000
Другой пример:
volumes:
- .:/usr/src/app
У нас же в контейнере ничего, кроме приложения нет! Какую такую жизненную необходимость имеет матрёшка usr/src/app?
В будущем я буду использовать в основном образы Node.js и если это не даёт никаких побочных эффектов, то класть своё приложение прямо в корень файловой системы контейнера. Будут ли у Вас, дорогие Docker-специалисты, какие-нибудь аргументы в пользу того, что так делать нельзя?
Обновление
Из этого англоязычного ответа я узнал, что ничего примонтировать к корневой директории контейнера нельзя. Поэтому если нам нужно что-то примонтировать, то возникает необходимость создать как минимум одну директорию в контейнере.