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: ../shared/chatbot_ui ports: - "18080:8080" environment: # this is only because we are running the sample app in the same docker container environemtn as archgw - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./arch_config.yaml:/app/arch_config.yaml opentelemetry: build: context: . dockerfile: Dockerfile-opentelemetry healthcheck: test: ["CMD-SHELL", "curl -sf http://localhost:13133 || exit 1"] interval: 1s timeout: 120s retries: 120 start_period: 5s command: ["--config=/etc/otel-collector-config.yaml"] ports: - "${PORT_UI:-55679}:55679" - "${PORT_GRPC:-4317}:4317" - "${PORT_HTTP:-4318}:4318" profiles: - monitoring 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