# Локальный запуск 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"
