SQLite в Docker: жить хорошо, а хорошо жить — ещё лучше (Litestream)
Иногда хочется, чтобы всё было просто. Взял Rails-приложение, завернул в Docker, запустил — и оно работает. Без отдельной СУБД, без монтирования хранилища для картинок и пр. Но вот незадача: если взять SQLite , положить её в контейнер и запустить — при docker rm ваша база улетает в никуда. Навсегда. Вместе с пользователями, настройками и всем, что вы так старательно назаполняли. Сегодня расскажу, как я в pet-проекте RuNiT решил эту проблему с помощью Litestream — и просто кайфую. Проблема Классический путь деплоя pet-проекта выглядит так: Поднять PostgreSQL в отдельном контейнере (найти под него постоянное хранилище и сервак) Прокинуть volume Понять, что вы тратите больше времени на администрирование СУБД, и хранилище картинок, чем на разработку фич Для pet-проекта это ощутимый оверхед. SQLite решает первый пункт, но создаёт два других: файл базы живёт внутри контейнера и при пересоздании исчезает бэкапов нет, и если сервер упал — всё, приплыли. Тут бы и с...