Почему volumes в docker-compose перетирают содержимое директории внутри контейнера?

Задать вопрос

1

version: '3'

services:
web:
image: test/vitrina_20:$VITRINA_RELEASE
command: ['./init.sh']
volumes:
- /var/www/html/vitrina_20/static:/code/static
- /var/www/html/vitrina_20/media:/code/media
- /var/log/vitrina_20:/code/logs
ports:
- "8001:8000"
environment:
- DATANRM_URL
- DATANRM_USER
- DATANRM_PASS
Имеется docker-compose файл. 1. Почему при запуске docker-compose.yml файла затирается содержимое папки static внутри контейнера ? 2. Как сделать чтобы содержимое папки /code/static в том виде в котором оно существует в репозитории было проброшено в папку /var/www/html/vitrina_20/static на хостсистему ? В не запущенном состоянии я вижу содержимое папки:

ls -1 static/
admin
bootstrap.bundle.min.js
bootstrap.min.css
bootstrap.min.js
debug_toolbar
favicon.ico
main.css
mptt
После запуска compose, когда я захожу внутрь контейнера я вижу что содержимое папки пустое и тем не менее в процессе работы я могу создать какой то файл в static и он пробросится на хост систему.
  • Вопрос задан
  • 274 просмотра
Пригласить эксперта
Ответы на вопрос 1
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Аналогично любой Unix-подобной системе. В mount namespace сначала монтируется корень — образ контейнера, а потом уже тома, соответственно всё, что было в образе по пути монтирования, перестаёт быть доступным.
Монтировать данные из образа на хост невозможно, для вас - docker cp после запуска контейнера
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы