- Раскладка docs/ приведена к канону 2: заведены passport/architecture/ database/security/review и research; docs/specs, drafts, backlog, review/ и BRIEF.md разобраны и удалены, беклог переехал в docs/tasks (34 задачи, 6 целей, слаги на английский). - Нарративы specs удалены как дубли openspec-спек после поимённой сверки; остаток заведён задачами (редактор маппинга ревью, крайние случаи именования), отказ от сущности title промоутнут в ADR. - Проектные копии агентов и скиллов ревью/пайплайна удалены в пользу плагинов av-dev-pm и av-dev-pipeline; в task gate добавлен шаг canon вместо er-schema.
41 lines
2.6 KiB
Markdown
41 lines
2.6 KiB
Markdown
# Docker как единица деплоя, образ собирается на сервере
|
||
|
||
- **Дата:** 2026-06-13
|
||
- **Статус:** заменено на ADR-2026-07-24-local-image-build
|
||
|
||
## Контекст
|
||
|
||
jellybit — статический Go-бинарь (см.
|
||
[ADR-2026-06-13-go-single-binary](ADR-2026-06-13-go-single-binary.md)). На
|
||
сервере umbar qBittorrent и (в планах) Jellyfin работают в docker. Нужно
|
||
выбрать, как запускать jellybit и как доставлять его на сервер.
|
||
|
||
## Рассмотренные варианты
|
||
|
||
- **Нативный systemd-юнит** — ближе всего к «просто скопировать бинарь»,
|
||
но это отдельная среда вне docker; разнобой со смежными приложениями
|
||
(сети, монтирования, политики рестарта).
|
||
- **Docker, образ собран и запушен из CI/реестра** — каноничнее, но в
|
||
домашней лаборатории это лишний реестр и пайплайн.
|
||
- **Docker, образ собирается на сервере из готового бинаря** — на сервер
|
||
кладутся бинарь + `Dockerfile`, `docker build` выполняется на месте.
|
||
|
||
## Решение
|
||
|
||
jellybit запускаем в **docker** — в одной среде с qBittorrent/Jellyfin
|
||
(единый способ управления, сети, монтирований). Образ **собираем на
|
||
сервере** из доставленного бинаря и `Dockerfile` (копирует бинарь в
|
||
`distroless/static`). Go-тулчейн и реестр на сервере не нужны. `Dockerfile`
|
||
(упаковка) живёт в jellybit; оркестрация (доставка, build, compose с
|
||
общей docker-сетью, `user 1000:1000`, mount `/srv/media` и data-тома) — в
|
||
umbar.
|
||
|
||
## Последствия
|
||
|
||
- `+` Одна среда со смежными сервисами; единые сети/монтирования/политики.
|
||
- `+` Доставка остаётся дешёвой: бинарь + `Dockerfile`, без реестра.
|
||
- `+` Образ версионируется (тег по сборке) — есть откат.
|
||
- `-` Шаг `docker build` на сервере (на Intel N150 дёшево).
|
||
- `-` Лёгкое отступление от «просто скопировать бинарь» — оправдано
|
||
единообразием среды с qBittorrent/Jellyfin.
|