# Docker Compose для LogBoard клиента
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru

version: '3.8'

services:
  logboard-client:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: logboard-client
    restart: unless-stopped
    environment:
      # URL сервера LogBoard
      - LOGBOARD_SERVER_URL=${LOGBOARD_SERVER_URL:-http://localhost:8000}
      # API ключ для аутентификации (обязательно)
      - LOGBOARD_API_KEY=${LOGBOARD_API_KEY}
      # Имя хоста (автоматически определяется)
      - HOSTNAME=${HOSTNAME:-$(hostname)}
      # Интервал отправки логов в секундах
      - LOGBOARD_INTERVAL=${LOGBOARD_INTERVAL:-60}
    volumes:
      # Доступ к Docker socket для получения логов контейнеров
      - /var/run/docker.sock:/var/run/docker.sock:ro
      # Логи клиента
      - ./logs:/var/log
    networks:
      - logboard-network
    depends_on:
      - logboard-server
    healthcheck:
      test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:8080/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  # Тестовый контейнер для демонстрации
  test-container:
    image: nginx:alpine
    container_name: test-nginx
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./logs/nginx:/var/log/nginx
    networks:
      - logboard-network
    command: >
      sh -c "echo 'Test container started at $$(date)' > /var/log/nginx/access.log &&
             tail -f /var/log/nginx/access.log"

networks:
  logboard-network:
    driver: bridge
    name: logboard-client-network

volumes:
  client-logs:
    driver: local
