Как по феншую сохранить состояние бд при локальной разработке?
У меня запущено два образа, первый это, например mysql, а второй это уже веб сервер + само приложение.
Так вот как не терять состояние базы, постоянно делать дамп при завершении работы и при старте заливать? Или при запуске маунтить всю бд: -v /mysql:/var/lib/mysql ?
Наставьте на путь истинный
-v /mysql:/var/lib/mysql это вполне по феншую
Я делаю что-то вроде этого:
- в контейнере бд -v ./mysql:/var/lib/mysql
- в контейнере веб сервера -v ./www:/var/www/html
- в случае необходимости сборки собственных образов держу в папке build докерфайлы и нужные им данные.
И в одной папке с проектом у меня папка с базой данных, папка со скриптами/исходниками и другими файловыми данными и папка с образами.
Все аккуратно лежит рядышком, запускается и гасится через docker-compose в одном комплексе.
Смысла делать именнованные docker volumes я не понял, тоже самое, только будет лежать в папке /var/lib/docker. Единственный резон это если том с данными используется сразу несколькими контейнерами, и по имени можно сразу понять что это такое.
А если появились изменения и требуется пересобрать образ, то чтобы сохранить БД - надо будет сделать экспорт-импорт или скопировать/вставить файлы дирректории VOLUME БД?