version: '3.8' services: quiz-bot: build: context: . dockerfile: Dockerfile container_name: quiz-bot restart: unless-stopped environment: - BOT_TOKEN=${BOT_TOKEN} - DATABASE_PATH=data/quiz_bot.db - CSV_DATA_PATH=data/ - LOG_LEVEL=INFO volumes: # Персистентное хранение данных - ./data:/app/data - ./logs:/app/logs networks: - quiz-bot-network healthcheck: test: ["CMD", "python", "-c", "import sqlite3; conn = sqlite3.connect('/app/data/quiz_bot.db'); conn.close()"] interval: 30s timeout: 10s retries: 3 start_period: 60s # Ограничения ресурсов deploy: resources: limits: cpus: '0.5' memory: 512M reservations: cpus: '0.1' memory: 128M # Опциональный сервис для мониторинга логов log-viewer: image: goharbor/harbor-log:v2.5.0 container_name: quiz-bot-logs profiles: ["monitoring"] ports: - "8080:8080" volumes: - ./logs:/var/log/quiz-bot:ro networks: - quiz-bot-network networks: quiz-bot-network: driver: bridge volumes: quiz-bot-data: driver: local