# Без version старый docker-compose читает файл как v1 (без ключа services). Версия схемы не выше возможностей клиента: 3.8+ часто не поддерживается старыми compose.
version: "3.3"

services:
  autoria-bot:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: autoria_telegram_bot
    restart: unless-stopped
    
    # Переменные окружения
    environment:
      - PYTHONUNBUFFERED=1
      - TZ=Europe/Kiev
      - DISPLAY=:99
      - DBUS_SESSION_BUS_ADDRESS=/dev/null
      # БД в именованном томе (bind-файл ./database.db при отсутствии файла на хосте превращался в каталог и ломал SQLite)
      - DATABASE_URL=sqlite+aiosqlite:////app/data/database.db
    
    # Подключаем файл с переменными окружения
    env_file:
      - .env
    
    # Volumes для сохранения данных
    volumes:
      - autoria_database:/app/data
      - ./logs:/app/logs
      - ./temp:/app/temp
      - /etc/localtime:/etc/localtime:ro
    
    # Настройки для работы в headless режиме
    cap_add:
      - SYS_ADMIN
    
    # Настройки сети
    networks:
      - autoria_network
    
    # Логирование
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    
    # Health check
    healthcheck:
      test: ["CMD", "python", "-c", "import requests; requests.get('https://api.telegram.org', timeout=10)"]
      interval: 30s
      timeout: 10s
      retries: 3

# Создаем отдельную сеть для изоляции
networks:
  autoria_network:
    driver: bridge

# Volumes для постоянного хранения данных
volumes:
  autoria_database:
    driver: local