Docker и образы LSUS
Обзор Docker-образов и контейнеров серверных ролей LSUS: что входит в каждый образ, на чём он построен и какие ключевые компоненты содержит. Полный дамп пакетов apt/pip/системных по каждому образу (для аудита безопасности и совместимости) — в артефакте docker/images/packages-report.md комплекта поставки.
Пошаговая установка — Развёртывание серверов. Справочник портов, контейнеров и переменных окружения — в Справочнике.
Образы¶
Все образы имеют тег ${LSUS_VERSION} (значение из docker/images/VERSION или lsus-server/VERSION) и pull_policy: never — берутся из загруженных локально, не из registry.
| Образ | Базовый образ | Роли (контейнеры) |
|---|---|---|
lsus-postgres |
postgres:15-bookworm (Debian 12) |
PostgreSQL 15 — общая СУБД для всех ролей на хосте |
lsus-master |
Debian 12 Bookworm Slim | lsus-master, lsus-master-worker, lsus-master-replication |
lsus-site |
Debian 12 Bookworm Slim | lsus-site, lsus-site-replication |
lsus-edge |
Debian 12 Bookworm Slim | lsus-edge |
lsus-pgbouncer |
— | lsus-pgbouncer (Master), lsus-site-pgbouncer (Site) |
lsus-nginx |
— | lsus-nginx (Master), lsus-site-nginx (Site), lsus-edge-nginx (Edge) |
Приложение в образах ролей работает на Python 3.11.2 (Debian Bookworm).
Контейнеры по ролям¶
| Роль | Контейнеры | Профиль compose |
|---|---|---|
| Master | lsus-postgres, lsus-pgbouncer, lsus-master, lsus-master-worker, lsus-master-replication, lsus-nginx |
master |
| Site | lsus-postgres, lsus-site-pgbouncer, lsus-site, lsus-site-replication, lsus-site-nginx |
site |
| Edge | lsus-postgres, lsus-edge, lsus-edge-nginx |
edge |
Подробное описание назначения каждого контейнера — в Справочнике.
Сетевая модель¶
network_mode: host
Все контейнеры запускаются с network_mode: host — без проброса портов. Контейнеры слушают порты напрямую на интерфейсах хоста. Внутренние порты (PostgreSQL, PgBouncer, loopback-порты приложения) слушаются только на 127.0.0.1 и наружу не торчат. Подробнее — в Справочнике портов.
Все контейнеры используют общий лимит файловых дескрипторов: nofile soft/hard 65536 — защита от EMFILE при тысячах клиентов.
Ключевые компоненты образов¶
Образы ролей (lsus-master, lsus-site, lsus-edge) построены на Debian Bookworm Slim и содержат серверное приложение на Python. Основные компоненты:
| Компонент | Назначение |
|---|---|
| Flask 3.0 | Веб-фреймворк (админка + API) |
| SQLAlchemy 2.0 | ORM, работа с PostgreSQL |
| psycopg2-binary | Драйвер PostgreSQL |
| APScheduler | Фоновые задачи и расписание (worker) |
| gunicorn | WSGI-сервер приложения |
| ldap3 | Интеграция с LDAP |
| gssapi | Интеграция с Kerberos |
| PGPy | Работа с PGP-подписями пакетов |
| pydpkg | Парсинг Debian-пакетов |
| rpm-vercmp | Сравнение версий RPM |
| croniter | Разбор cron-выражений (расписание) |
| zstandard | Сжатие Zstandard |
Образ lsus-postgres построен на postgres:15-bookworm и содержит PostgreSQL 15 со startup-автотюнингом: при старте контейнер рассчитывает max_connections, shared_buffers, effective_cache_size, work_mem и параметры WAL/checkpoint из доступной памяти (40% RAM резервируется под ОС, остальное — под PostgreSQL). Значения можно переопределить через LSUS_PG_* в .env.
Проверить применённые параметры:
sudo bash /opt/lsus-docker/scripts/check-postgres-tuning.sh
Каталоги данных¶
Данные хранятся в DATA_DIR (по умолчанию /opt/lsus-docker/data/):
/opt/lsus-docker/data/
├── postgres/ # данные PostgreSQL
├── master/ # repos, kb-cache, kb-storages, data, log
├── site/ # repos, data, log
└── edge/ # storage, data, log
Подробная структура каталогов и вынос данных на отдельный диск — в Справочнике.
Полный отчёт по пакетам¶
Полный дамп пакетов apt, pip и системных для каждого образа (с версиями и описаниями) генерируется скриптом gen-packages-report.sh и сохраняется в:
docker/images/packages-report.md
Этот артефакт предназначен для аудита безопасности, проверки совместимости зависимостей и расследования уязвимостей. В wiki он не включается из-за объёма (~800 строк сырого справочника).
Совет
Для генерации свежего отчёта выполните gen-packages-report.sh из каталога docker/ комплекта поставки — отчёт строится по фактически собранным образам.
Связанные страницы¶
- Развёртывание серверов — пошаговая установка.
- Справочник портов и переменных — полный референс.
- Обновление системы — обновление образов и контейнеров.