volumes: dbdata: prometheus-data: minio-data: services: nginx-80: image: nginx:alpine container_name: nginx-80 restart: always ports: - "80:80" volumes: - ./nginx.dev.conf:/etc/nginx/nginx.conf - ./.htpasswd:/etc/nginx/.htpasswd depends_on: - grafana - zipkin - prometheus grafana: image: grafana/grafana:9.5.14 container_name: grafana volumes: - ./grafana.ini:/etc/grafana/grafana.ini - ./grafana_datasources.yaml:/etc/grafana/provisioning/datasources/ds.yaml depends_on: - loki - prometheus ports: - 3000 prometheus: image: prom/prometheus:v2.21.0 ports: - 9090 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus-data:/prometheus command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml loki: image: grafana/loki:2.5.0 container_name: loki command: "-config.file=/etc/loki/config.yaml -target=all" ports: - 3100 - 7946 - 9095 volumes: - ./loki-config.yaml:/etc/loki/config.yaml depends_on: - minio minio: image: minio/minio entrypoint: - sh - -euc - | mkdir -p /data/loki-data && \ mkdir -p /data/loki-ruler && \ minio server /data environment: - MINIO_ACCESS_KEY=loki - MINIO_SECRET_KEY=supersecret - MINIO_PROMETHEUS_AUTH_TYPE=public - MINIO_UPDATE=off ports: - 9000 volumes: - minio-data:/data redis-state: image: redis restart: always ports: - 6379 environment: ALLOW_EMPTY_PASSWORD: "yes" dapr-placement: image: "daprio/dapr" container_name: dapr_placement command: ["./placement", "-port", "50006"] ports: - "50006" rabbit: image: rabbitmq:3-management-alpine container_name: pubsub_rabbitmq restart: always ports: - "5672" database: image: postgres container_name: postgres restart: always environment: POSTGRES_PASSWORD: admin POSTGRES_DB: openmu POSTGRES_USER: postgres ports: - "5432" volumes: - dbdata:/var/lib/postgresql zipkin: image: openzipkin/zipkin container_name: tracing_zipkin restart: always ports: - "9411:9411" connectServer: image: munique/openmu-connect container_name: connectServer ports: - "50001" - "44405:44405" - "9464" # Prometheus environment: APPID: connectServer ASPNETCORE_URLS: http://+:8080 depends_on: - rabbit - zipkin - database connectServer-dapr: image: "daprio/daprd:latest" container_name: connectServer_dapr command: [ "./daprd", "-app-id", "connectServer", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - connectServer network_mode: "service:connectServer" volumes: - "./dapr-components/:/components" loginServer: image: munique/openmu-login container_name: loginServer ports: - "50001" - "9464" # Prometheus environment: ASPNETCORE_URLS: http://+:8080 depends_on: - zipkin - database loginServer-dapr: image: "daprio/daprd:latest" container_name: loginServer_dapr command: [ "./daprd", "-app-id", "loginServer", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - loginServer network_mode: "service:loginServer" volumes: - "./dapr-components/:/components" friendServer: image: munique/openmu-friend container_name: friendServer ports: - "50001" - "9464" # Prometheus environment: ASPNETCORE_URLS: http://+:8080 depends_on: - chatServer-dapr - database - zipkin friendServer-dapr: image: "daprio/daprd:latest" container_name: friendServer_dapr command: [ "./daprd", "-app-id", "friendServer", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - friendServer network_mode: "service:friendServer" volumes: - "./dapr-components/:/components" guildServer: image: munique/openmu-guild container_name: guildServer ports: - "50001" - "9464" # Prometheus environment: ASPNETCORE_URLS: http://+:8080 depends_on: - database - zipkin guildServer-dapr: image: "daprio/daprd:latest" container_name: guildServer_dapr command: [ "./daprd", "-app-id", "guildServer", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - guildServer network_mode: "service:guildServer" volumes: - "./dapr-components/:/components" chatServer: image: munique/openmu-chat container_name: chatServer environment: APPID: chatServer ASPNETCORE_URLS: http://+:8080 ports: - "55980:55980" - "50001" - "9464" # Prometheus depends_on: - database - zipkin chatServer-dapr: image: "daprio/daprd:latest" container_name: chatServer_dapr command: [ "./daprd", "-app-id", "chatServer", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - chatServer network_mode: "service:chatServer" volumes: - "./dapr-components/:/components" adminPanel: image: munique/openmu-admin container_name: adminPanel depends_on: - database ports: - "8080" - "9464" # Prometheus environment: ASPNETCORE_URLS: http://+:8080 PATH_BASE: /admin/ volumes: - ./.htpasswd:/etc/nginx/.htpasswd adminPanel-dapr: image: "daprio/daprd:latest" container_name: adminPanel_dapr command: [ "./daprd", "-app-id", "adminPanel", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - adminPanel network_mode: "service:adminPanel" volumes: - "./dapr-components/:/components" gameServer0: image: munique/openmu-game container_name: gameServer0 build: context: ../../src dockerfile: Dapr/GameServer.Host/Dockerfile ports: - "8080" - "50001" - "55901:55901" - "55902:55902" - "9464" # Prometheus environment: GS_ID: 0 APPID: gameServer0 PATH_BASE: /gameServer/0/ ASPNETCORE_URLS: http://+:8080 depends_on: - connectServer-dapr - loginServer-dapr - friendServer-dapr - rabbit - zipkin - database - loki gameServer0-dapr: image: "daprio/daprd:latest" container_name: gameserver0_dapr command: [ "./daprd", "-app-id", "gameServer0", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - gameServer0 network_mode: "service:gameServer0" volumes: - "./dapr-components/:/components" gameServer1: image: munique/openmu-game container_name: gameServer1 build: context: ../../src dockerfile: Dapr/GameServer.Host/Dockerfile ports: - "8080" - "50001" - "55903:55903" - "55904:55904" - "9464" # Prometheus environment: GS_ID: 1 APPID: gameServer1 PATH_BASE: /gameServer/1/ ASPNETCORE_URLS: http://+:8080 depends_on: - connectServer-dapr - loginServer-dapr - friendServer-dapr - rabbit - zipkin - database - loki gameServer1-dapr: image: "daprio/daprd:latest" container_name: gameserver1_dapr command: [ "./daprd", "-app-id", "gameServer1", "-app-port", "8080", "-components-path", "/components", "-config", "/components/config.yaml", "-placement-host-address", "dapr-placement:50006" ] depends_on: - gameServer1 network_mode: "service:gameServer1" volumes: - "./dapr-components/:/components"