version: '3.4' configs: prometheus_config: file: ./TodoApi/prometheus.yml x-common-variables: &common-variables ASPNETCORE_ENVIRONMENT: Development ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: YourPasswordHere ASPNETCORE_Kestrel__Certificates__Default__Path: /https/todoapps.pfx services: todo-api: image: todo-api pull_policy: if_not_present environment: <<: *common-variables OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4317 ports: - "5000:80" - "5001:443" volumes: - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro - ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro - ~/.aspnet/https:/https:ro - ./TodoApi/.db:/app/.db container_name: todo-api todo-web-server: image: todo-web-server pull_policy: if_not_present environment: <<: *common-variables TodoApiUrl: http://todo-api ports: - "5002:80" - "5003:443" volumes: - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro - ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro - ~/.aspnet/https:/https:ro container_name: todo-web-server prometheus: image: prom/prometheus ports: - "9090:9090" configs: - source: prometheus_config target: /etc/prometheus/prometheus.yml container_name: prometheus jaeger: image: jaegertracing/all-in-one:latest environment: - COLLECTOR_ZIPKIN_HOST_PORT=:9411 - COLLECTOR_OTLP_ENABLED=true - METRICS_STORAGE_TYPE=prometheus - PROMETHEUS_SERVER_URL=http://prometheus:9090 ports: - "6831:6831/udp" - "6832:6832/udp" - "5778:5778" - "16686:16686" - "4317:4317" - "4318:4318" - "14250:14250" - "14268:14268" - "14269:14269" - "9411:9411" container_name: jaeger seq: image: datalust/seq:latest container_name: seq restart: on-failure ports: - 8081:80 - 5341:5341 environment: ACCEPT_EULA: Y elasticsearch: container_name: elastic_search restart: on-failure image: docker.elastic.co/elasticsearch/elasticsearch:latest environment: - discovery.type=single-node - bootstrap.memory_lock=true - xpack.monitoring.enabled=true - xpack.watcher.enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - elastic-data:/usr/share/elasticsearch/data ports: - "9200:9200" - "9300:9300" kibana: image: docker.elastic.co/kibana/kibana:latest container_name: kibana restart: on-failure environment: - ELASTICSEARCH_HOSTS=http://elastic_search:9200 ports: - "5601:5601" depends_on: - elasticsearch