# Production: no source mount; image contains code name: ai services: db: image: mysql:8.0 container_name: ai-db environment: MYSQL_DATABASE: ${DB_NAME:-ai} MYSQL_USER: ${DB_USER:-ai} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} volumes: - ai_mysql_data:/var/lib/mysql restart: unless-stopped healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASSWORD}"] interval: 10s timeout: 5s retries: 5 phpmyadmin: image: phpmyadmin:latest container_name: ai-phpmyadmin environment: PMA_HOST: db PMA_PORT: 3306 UPLOAD_LIMIT: 64M ports: - "8082:80" depends_on: db: condition: service_healthy restart: unless-stopped redis: image: redis:7-alpine container_name: ai-redis restart: unless-stopped qdrant: image: qdrant/qdrant:latest container_name: ai-qdrant ports: - "6333:6333" - "6334:6334" volumes: - qdrant_data:/qdrant/storage restart: unless-stopped web: build: context: . args: APT_MIRROR: mirror2.chabokan.net PIP_INDEX_URL: https://package-mirror.liara.ir/repository/pypi/simple PIP_EXTRA_INDEX_URL: https://mirror.cdn.ir/repository/pypi/simple PYTHON_MIRROR: mirror2.chabokan.net container_name: ai-web env_file: - .env environment: DB_HOST: db CELERY_BROKER_URL: redis://redis:6379/0 CELERY_RESULT_BACKEND: redis://redis:6379/0 QDRANT_HOST: qdrant QDRANT_PORT: 6333 depends_on: db: condition: service_healthy redis: condition: service_started qdrant: condition: service_started restart: unless-stopped ports: - "8020:8000" volumes: - ./logs:/app/logs celery: build: context: . args: APT_MIRROR: mirror2.chabokan.net PIP_INDEX_URL: https://package-mirror.liara.ir/repository/pypi/simple PIP_EXTRA_INDEX_URL: https://mirror.cdn.ir/repository/pypi/simple PYTHON_MIRROR: mirror2.chabokan.net container_name: ai-celery command: celery -A config worker -l info env_file: - .env environment: DB_HOST: db CELERY_BROKER_URL: redis://redis:6379/0 CELERY_RESULT_BACKEND: redis://redis:6379/0 depends_on: db: condition: service_healthy redis: condition: service_started restart: unless-stopped volumes: - ./logs:/app/logs volumes: ai_mysql_data: qdrant_data: