- сервис поднимается через `task up`/`task restart`, данные вынесены в ./data и переживают пересборку — поток с телефона не прерывается - `task gate` гоняет build/vet/lint/test/race/покрытие диффа/миграции, плюс два шага под healthlog: данные о здоровье в индексе и синхронность образцов конфига - `task review:context` собирает вход для архитектурного прохода ревью
33 lines
1.4 KiB
YAML
33 lines
1.4 KiB
YAML
# Локальный запуск healthlog в контейнере.
|
|
#
|
|
# Зачем контейнер на этапе разработки: телефон шлёт данные непрерывно, и
|
|
# сервис должен переживать пересборку без ручного вмешательства. `task up`
|
|
# собирает бинарь и поднимает сервис, `task restart` перезапускает его,
|
|
# `task logs` показывает поток. Данные лежат в ./data и переживают всё.
|
|
#
|
|
# Наружу открыт порт 8080 на всех интерфейсах — иначе телефон из локальной
|
|
# сети не достучится. Токенов нет: сеть доверенная, см. config.docker.toml.
|
|
|
|
services:
|
|
healthlog:
|
|
image: healthlog:dev
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: healthlog
|
|
# Тот же uid, что у хозяина каталога: файлы в ./data остаются нашими, а не
|
|
# root, иначе их не прочитать скриптами разведки с хоста.
|
|
user: "1000:1000"
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
- ./config.docker.toml:/config/config.toml:ro
|
|
- ./data:/data
|
|
restart: unless-stopped
|
|
stop_grace_period: 30s
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|