mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 01:14:58 +03:00
Установка раз в шесть часов и по кнопке проверяет страницу релизов GitHub. Администратор установки видит баннер о новой версии и ставит её одной кнопкой; карточка «Обновления» — в «Настройки → Платформа». Установку выполняет отдельный сервис updater с Docker-сокетом: backend-app общается с ним только файлами в томе chatballs-updates (heartbeat, request.json, status.json). Updater принимает лишь релизы своего репозитория с образами по digest и применяет compose.yaml в одноразовом контейнере-помощнике, после чего кладёт файл в каталог установки. Запрос установки попадает в аудит. Релизный workflow собирает образ updater и пришпиливает его в compose.yaml; версия бэкенда зашивается в образ (CHATBALLS_VERSION). Миграции updates.0001 и tenancy.0034 (гранты на таблицу состояния). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
12 lines
789 B
Docker
12 lines
789 B
Docker
# Сервис updater: обновление установки по кнопке из интерфейса (ADR-CHATBALLS-0049).
|
|
# Официальный образ docker CLI с плагином compose плюс два сценария; больше в
|
|
# нём ничего нет. Базовый образ закрепляется по digest при сборке релиза.
|
|
ARG CHATBALLS_UPDATER_BASE_IMAGE=docker:27-cli
|
|
FROM ${CHATBALLS_UPDATER_BASE_IMAGE}
|
|
|
|
COPY deploy/updater/chatballs-updater.sh /usr/local/bin/chatballs-updater.sh
|
|
COPY deploy/updater/chatballs-updater-apply.sh /usr/local/bin/chatballs-updater-apply.sh
|
|
RUN chmod 0755 /usr/local/bin/chatballs-updater.sh /usr/local/bin/chatballs-updater-apply.sh
|
|
|
|
ENTRYPOINT ["/bin/sh", "/usr/local/bin/chatballs-updater.sh"]
|