version: '3.8' services: quiz-bot: build: context: . dockerfile: Dockerfile container_name: quiz-bot restart: unless-stopped user: "0:0" 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 command: > sh -c " chown -R quizbot:quizbot /app/data /app/logs && chmod -R 775 /app/data /app/logs && python -m src.bot " 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