Files
jellybit/docs/adr/ADR-2026-06-13-docker-deploy.md
T

2.5 KiB
Raw Blame History

Docker как единица деплоя, образ собирается на сервере

  • Дата: 2026-06-13

Контекст

jellybit — статический Go-бинарь (см. ADR-2026-06-13-go-single-binary). На сервере 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 с network_mode: host, user 1000:1000, mount /srv и data-тома) — в umbar.

Последствия

  • + Одна среда со смежными сервисами; единые сети/монтирования/политики.
  • + Доставка остаётся дешёвой: бинарь + Dockerfile, без реестра.
  • + Образ версионируется (тег по сборке) — есть откат.
  • - Шаг docker build на сервере (на Intel N150 дёшево).
  • - Лёгкое отступление от «просто скопировать бинарь» — оправдано единообразием среды с qBittorrent/Jellyfin.