Про использование `Docker` и `Docker-compose` последнее время написано очень много, например рекомендую [недавнюю статью на Хабре][1], если вы до сих пор не прониклись. Это действительно очень удобно, а [в связке в ansible][2] особенно. И я его использую везде. От разработки, до автоматического интеграционного тестирования на `CI`. [Про использование в тестировании, тоже писали][3]. Это здорово и удобно. **Однако, для локальной разработки, для траблешутинга данных "как в продакшене" или тестирование производительности, на "объёмах близких в продакшену", хочется иметь под рукой образ, содержащий базу, "как в продакшене"!**
Соответственно, хочется, чтобы каждый разработчик, приступая к работе над проектом, мог запустить его одной командой, например:
./gradlew dockerRun
и приложение поднялось бы сразу со всеми необходимыми связанными контейнерами? А главное чтобы в нём уже были бы данные для большинства кейсов разработки и багфиксинга, стандартные пользователи и большинство работающих сервисов, над которыми сразу можно было бы приступить работать, не тратя времени на экспорт-импорт каких-то там образов или демоданных!
**_Как приятный бонус, ну разве не здорово иметь базу данных в несколько гигабайт и возможность откатиться к её исходному (или любому другому коммиту) состоянию в течении пары секунд?_**
Разумеется мы поговорим о написании `Dockerfile` для такого образа с данными, и некоторых подводных камнях этого процесса.
[Читать дальше →][4]
[1]:
https://habrahabr.ru/post/322440/
[2]:
https://habrahabr.ru/post/217689/
[3]:
https://habrahabr.ru/post/275513/
[4]:
https://habrahabr.ru/post/328226/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut