Docker Compose для домашнего сервера: что я понял за год
Год назад у меня на домашнем сервере было с десяток контейнеров, запущенных руками через docker run. Восстановить это после переустановки системы было отдельным квестом. Теперь всё описано в compose-файлах, и вот что из этого вышло.
Один сервис — одна папка
Каждый сервис живёт в своей папке: compose.yaml, .env и данные рядом. Бэкап и перенос — это просто скопировать папку.
~/services/
jellyfin/
compose.yaml
.env
config/
paperless/
compose.yaml
...
Фиксировать версии образов
Тег latest однажды сломал мне Paperless посреди недели. С тех пор версии только явные, обновляю раз в месяц и читаю changelog.
Healthcheck везде, где можно
Без него depends_on почти бесполезен: база ещё стартует, а приложение уже падает с ошибкой подключения.
Пока это всё. Следующий шаг — наконец настроить нормальный мониторинг вместо «зайти и посмотреть».