4 просмотра
PruneMate — это легковесный веб-интерфейс для автоматической очистки Docker-хоста. Он позволяет удалять ненужные контейнеры, образы, сети и тома по расписанию. Установите PruneMate с помощью Docker Compose, настройте расписание, аутентификацию и уведомления.
Требования
- Docker и Docker Compose установлены
- Доступ к
/var/run/docker.sock
Шаги установки
- Создайте файл
docker-compose.yaml: - Запустите PruneMate:
- Доступ к веб-интерфейсу:
services:
prunemate:
image: anoniemerd/prunemate:latest
container_name: prunemate
ports:
- "7676:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./logs:/var/log
- ./config:/config
environment:
- PRUNEMATE_TZ=Europe/Amsterdam
- PRUNEMATE_TIME_24H=true
restart: unless-stopped
docker-compose up -d
Откройте браузер и перейдите по адресу: http://:7676/
Настройка аутентификации (опционально)
- Сгенерируйте хеш пароля:
- Добавьте переменные окружения в
docker-compose.yaml: - Перезапустите контейнер:
docker run --rm anoniemerd/prunemate:latest python prunemate.py --gen-hash "your_password"
environment:
- PRUNEMATE_AUTH_USER=admin
- PRUNNEAMTE_AUTH_PASSWORD_HASH=ваш_хеш_здесь
docker-compose up -d
Настройка расписания и уведомлений
Веб-интерфейс PruneMate позволяет настроить расписание (ежедневно, еженедельно или ежемесячно), выбрать типы ресурсов для очистки и настроить уведомления через Gotify, ntfy.sh, Discord или Telegram.
Файловая структура
/config/
├── config.json # Конфигурационный файл
├── stats.json # Статистика по очистке
├── prunemate.lock # Запрет одновременных запусков
└── last_run_key # Дата последней успешной очистки
/var/log/
└── prunemate.log # Логи приложения (вращающиеся, 5 МБ максимум)
Как это работает
- Планировщик запускается каждую минуту и проверяет, нужно ли выполнять очистку.
- Загружается последняя конфигурация из хранилища.
- Выполняются команды Docker prune для выбранных типов ресурсов.
- Собирается статистика по удаленным ресурсам и освобожденному пространству.
- Обновляются общие метрики (пространство, количество удаленных элементов).
- Отправляются уведомления, если они настроены и включены.
- Все действия логируются с учетом часового пояса.
