# docker-compose.yml version: "3.9" services: db: image: pgvector/pgvector:0.8.1-pg17-bookworm environment: POSTGRES_DB: rag POSTGRES_USER: rag POSTGRES_PASSWORD: rag ports: ["5432:5432"] healthcheck: test: ["CMD-SHELL", "pg_isready -U rag -d rag"] interval: 5s timeout: 3s retries: 10 volumes: - pgdata:/var/lib/postgresql/data minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin ports: - "9000:9000" - "9001:9001" volumes: - minio_data:/data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 10s timeout: 5s retries: 5 app: build: . depends_on: db: condition: service_healthy minio: condition: service_healthy environment: SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/rag SPRING_DATASOURCE_USERNAME: rag SPRING_DATASOURCE_PASSWORD: rag OPENAI_API_KEY: ${OPENAI_API_KEY:-} RAG_PROVIDER_EMBEDDINGS: springai RAG_PROVIDER_CHAT: springai S3_ENDPOINT: http://minio:9000 S3_ACCESS_KEY: minioadmin S3_SECRET_KEY: minioadmin S3_BUCKET: astradesk-rag ports: ["8080:8080"] volumes: pgdata: minio_data: