services: mysql: image: mysql:8.0 container_name: listing_radar_mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpass} MYSQL_DATABASE: ${MYSQL_DATABASE:-listing_radar} MYSQL_USER: ${MYSQL_USER:-app} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-apppass} ports: - "${MYSQL_PORT:-3306}:3306" volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-rootpass}"] interval: 10s timeout: 5s retries: 10 qdrant: image: qdrant/qdrant:latest container_name: listing_radar_qdrant restart: unless-stopped ports: - "6333:6333" - "6334:6334" volumes: - qdrant_data:/qdrant/storage healthcheck: test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/6333' || exit 1"] interval: 10s timeout: 5s retries: 10 api: build: context: . dockerfile: Dockerfile container_name: listing_radar_api restart: unless-stopped depends_on: mysql: condition: service_healthy qdrant: condition: service_started environment: MYSQL_HOST: mysql MYSQL_PORT: 3306 MYSQL_USER: ${MYSQL_USER:-app} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-apppass} MYSQL_DATABASE: ${MYSQL_DATABASE:-listing_radar} QDRANT_URL: http://qdrant:6333 GEMINI_API_KEY: ${GEMINI_API_KEY} SEARCH_ENGINE_ID: ${SEARCH_ENGINE_ID} ports: - "8000:8000" env_file: - .env volumes: mysql_data: qdrant_data: