хосте, если ее нет?
В docker-compose файле есть секция volumes такого содержания
volumes:
resources:
name: 'resources'
driver: 'local'
driver_opts:
type: 'none'
o: 'bind'
device: '/srv/app/resources'
потом этот том используется в сервисе вот так
services:
backend:
volumes:
- resources:/home/app/resources
- logs:/home/app/.logs
но проблема в том, что если на хосте нет указанной директории, то docker-compose up падает с ошибкой
Cannot start service ...... no such file or directory
если на хосте папка есть, то все поднимается.
Как можно принудительно заставить докер создать нужные каталоги под тома?
Не используйте проброс папок, а используйте именно volume докера. Без указания первой папки на хосте
имеете в виду вот это device: '/srv/app/resources' не использовать в секции volumes?
а где в таком случае файлы мои будут?
а мы будем игнорить адекватные ответы. ок. норм
а где эти ответы?
Ну физически будут в /var/lib/docker, но это не то от случай. Если вам нужно работать с этими файлами, то всё таки через проброс папки, напишите мейкфайл который будет подготавливать окружение и стартовать докер
Но это всё на уровне разработки. На проде не надо так, что файлы с хоста пробрасываются в контейнер. Правильно использовать volume, если нужно сохранять результат работы контейнеров при перезапуске.
Ну вот да, как раз с файлами надо работать. Туда складываются файлы которые юзера на сайте грузят(аватарки например), и потом эти аватарки надо же как то отдавать. Отдаются через nginx.
Обсуждают сегодня