version: '3.8' services: qr-manager: build: . container_name: qr-code-manager restart: unless-stopped ports: - "5000:5000" environment: - FLASK_ENV=production - SECRET_KEY=${SECRET_KEY:-your-super-secret-key-change-me} - ADMIN_USERNAME=${ADMIN_USERNAME:-admin} - ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin123} volumes: - qr_data:/app/app/static/qr_codes - logo_data:/app/app/static/logos - session_data:/app/flask_session healthcheck: test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:5000/health')"] interval: 30s timeout: 10s retries: 3 start_period: 10s labels: - "com.example.description=QR Code Manager Application" - "com.example.service=qr-manager" volumes: qr_data: driver: local logo_data: driver: local session_data: driver: local networks: default: name: qr-manager-network