# exdev Mac Studio 서버 — Agent RAG (Mac Docker: 포트 매핑 필수, host network 미지원) name: exaichatbot-agent services: qdrant: image: qdrant/qdrant:v1.18.2 ports: - "6333:6333" - "6334:6334" volumes: - ./qdrant_data:/qdrant/storage restart: unless-stopped api: image: "${RAG_API_IMAGE:-rag-api-slim:latest}" build: context: . dockerfile: docker/service-slim.Dockerfile ports: - "${RAG_API_PORT:-28012}:28012" extra_hosts: - "host.docker.internal:host-gateway" depends_on: - qdrant env_file: - .env environment: PYTHONUNBUFFERED: "1" HTTP_PROXY: "" HTTPS_PROXY: "" QDRANT_HOST: qdrant QDRANT_PORT: "6333" MONGO_HOST: host.docker.internal LLM_BASE_URL: http://host.docker.internal:16000 TEI_EMBED_URL: http://host.docker.internal:16001 TEI_RERANK_URL: http://host.docker.internal:16002 # exdev: 호스트에서 기동한 chatbotApi(WAS). 운영 기본값(172.16.180.130)은 git push 대상 코드에만 유지. CHATBOT_API_BASE_URL: ${CHATBOT_API_BASE_URL:-http://host.docker.internal:8086/api} INTERNAL_TOOL_API_KEY: ${INTERNAL_TOOL_API_KEY:-exdev-agent-tool-key} CHATBOT_TOOL_TIMEOUT: ${CHATBOT_TOOL_TIMEOUT:-60} volumes: - ./data:/app/data - ./scripts:/app/scripts restart: unless-stopped healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:28012/health"] interval: 10s timeout: 10s retries: 12 start_period: 60s admin: image: "${RAG_API_IMAGE:-rag-api-slim:latest}" ports: - "${ADMIN_PORT:-28013}:28013" extra_hosts: - "host.docker.internal:host-gateway" command: - python - -m - uvicorn - scripts.admin_service:app - --host - 0.0.0.0 - --port - "28013" working_dir: /app depends_on: - qdrant env_file: - .env environment: PYTHONUNBUFFERED: "1" QDRANT_HOST: qdrant QDRANT_PORT: "6333" volumes: - ./data:/app/data - ./scripts:/app/scripts restart: unless-stopped