services: api_server: build: context: api_server dockerfile: Dockerfile ports: - "18083:80" healthcheck: test: ["CMD", "curl" ,"http://localhost:80/healthz"] interval: 5s retries: 20 chatbot_ui: build: context: ../../chatbot_ui dockerfile: Dockerfile ports: - "18090:8080" environment: - OPENAI_API_KEY=${OPENAI_API_KEY:?error} - MISTRAL_API_KEY=${MISTRAL_API_KEY:?error} - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 prometheus: image: prom/prometheus container_name: prometheus command: - '--config.file=/etc/prometheus/prometheus.yaml' ports: - 9090:9090 restart: unless-stopped volumes: - ./prometheus:/etc/prometheus - ./prom_data:/prometheus profiles: - monitoring grafana: image: grafana/grafana container_name: grafana ports: - 3000:3000 restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=grafana volumes: - ./grafana:/etc/grafana/provisioning/datasources - ./grafana/dashboard.yaml:/etc/grafana/provisioning/dashboards/main.yaml - ./grafana/dashboards:/var/lib/grafana/dashboards profiles: - monitoring