Как 2 volume в одну директорию указать в Docker?
У меня есть сайт в директории /var/www/html и есть модули, которые необходимо подключить, модули ссылаются так же в директорию /var/www/html, возможно ли через docker подключить 2 volume в одну директорию?
app: restart: always container_name: "app" build: context: . dockerfile: ./docker/app ports: - "8023:8023" volumes: - './app:/var/www/html' # Tasks Module - './modules/tasks:/var/www/html' |
app: restart: always container_name: "app" build: context: . dockerfile: ./docker/app ports: - "8023:8023" volumes: - './app:/var/www/html' # Tasks Module - './modules/tasks:/var/www/html'
Дополнительно:
а как вы себе это представляете в файловой структуре, если бы не было докера?
module/
├── admin/
│ ├── controller/
│ │ ├── common/
│ │ │ └── ...
│ │ └── modules/
│ │ └── ...
│ ├── model/
│ │ ├── modules/
│ │ │ └── ...
│ │ └── ...
│ └── view/
│ ├── modules/
│ │ └── ...
│ └── ...
└── catalog/
├── controller/
│ ├── modules/
│ │ └── ...
│ └── ...
├── model/
│ ├── modules/
│ │ └── ...
│ └── ...
└── view/
├── modules/
│ └── ...
└── ...
app:
├── admin/
│ ├── controller/
│ ├── language/
│ ├── model/
│ ├── view/
│ ├── config.php
│ ├── index.php
│ └── ...
├── catalog/
│ ├── controller/
│ ├── language/
./app:/var/www/html/app
./modules/tasks:/var/www/html/module
# Tasks Module - ./modules/tasks/catalog/controller/api/modules/tasks.php:/var/www/html/catalog/controller/api/modules/tasks.php - ./modules/tasks/catalog/model/api/modules/tasks.php:/var/www/html/catalog/model/api/modules/tasks.php |
# Tasks Module - ./modules/tasks/catalog/controller/api/modules/tasks.php:/var/www/html/catalog/controller/api/modules/tasks.php - ./modules/tasks/catalog/model/api/modules/tasks.php:/var/www/html/catalog/model/api/modules/tasks.php
Потому что файлов может быть много, картинки, css, js скрипты, и все файлы подключать каждый раз не прикольно
модули имеют структуру похожую на app, не могу подключить в отдельной папке
но в примере файловой структуры вы подключили их отдельных папках. Поправьте пример.
Как 2 volume в одну директорию указать = никак
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Для того чтобы указать два volume в одну директорию в Docker, вам необходимо использовать опцию -v или --volume при запуске контейнера.
Пример команды для запуска контейнера с указанием двух volume в одну директорию выглядит следующим образом:
docker run -v /путь/к/первому/директорию:/место/для/первого/volume -v /путь/к/второму/директорию:/место/для/второго/volume название_образа |
docker run -v /путь/к/первому/директорию:/место/для/первого/volume -v /путь/к/второму/директорию:/место/для/второго/volume название_образа
Где:
- /путь/к/первому/директорию - это путь к первой директории на вашем хосте, которую вы хотите примонтировать как первый volume
- /место/для/первого/volume - это путь внутри контейнера, куда будет примонтирован первый volume
- /путь/к/второму/директорию - это путь ко второй директории на вашем хосте, которую вы хотите примонтировать как второй volume
- /место/для/второго/volume - это путь внутри контейнера, куда будет примонтирован второй volume
- название_образа - это название образа, на основе которого будет запущен контейнер
Таким образом, при запуске контейнера с указанием двух volume в одну директорию, вы сможете обеспечить доступ к обоим директориям изнутри контейнера, что может быть полезно для различных приложений и сервисов, требующих доступа к различным данным или файлам.

Для того чтобы указать два тома в одну директорию в Docker, вам нужно создать два разных тома и затем примонтировать их в одну общую директорию. Это можно сделать следующим образом:
1. Создайте два тома, например, volume1 и volume2, используя команду docker volume create:
docker volume create volume1 docker volume create volume2
2. Запустите контейнер, указав оба тома при помощи флага -v:
docker run -d -v volume1:/path/to/directory -v volume2:/path/to/directory your_image_name
3. Теперь оба тома будут примонтированы в одну директорию /path/to/directory внутри контейнера.
Таким образом, вы можете указать два volume в одну директорию в Docker, что позволит вам легко управлять данными и конфигурациями внутри контейнера. Не забудьте заменить your_image_name на имя вашего образа Docker.