Files
av 08bef2cac0 deploy: переход на локальную сборку образа и доставку docker save/load
- task image принимает BUILD_ID и тегает <app>:$BUILD_ID (контракт роли app_image в umbar)
- добавлен ADR-2026-07-24-local-image-build, старый docker-deploy помечен superseded
- README/architecture/roadmap/Dockerfile обновлены под новую схему (без сборки на сервере)
2026-07-24 18:33:51 +03:00

25 lines
1.5 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Упаковка готового статического бинаря в минимальный образ. Образ целиком
# собирается локально на control-хосте (`task image`) и едет на сервер через
# docker save/load — роль app_image в umbar (см.
# docs/adr/ADR-2026-07-24-local-image-build.md).
# Бинарь собирается снаружи:
# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o jellybit ./cmd/jellybit
# distroless/static несёт CA-сертификаты (HTTPS к LLM/TMDB). Пользователь
# задаётся в compose (user: "1000:1000").
#
# Тома (см. compose): /config (ro, рендерится плейбуком — восстановимо при
# деплое) + /data (SQLite, бекапить-и-не-терять).
FROM gcr.io/distroless/static-debian12
COPY jellybit /usr/local/bin/jellybit
EXPOSE 8080
# В distroless нет shell/curl — проверку делает сам бинарь (порт берёт из
# конфига). Путь задаём явно: дефолт загрузчика — config.toml в рабочей
# директории, а конфиг смонтирован в /config. compose может переопределить.
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD ["/usr/local/bin/jellybit", "healthcheck", "--config", "/config/config.toml"]
ENTRYPOINT ["/usr/local/bin/jellybit", "--config", "/config/config.toml"]