listing-radar/docker-compose.yml

64 lines
1.6 KiB
YAML

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: