version: '3.8' services: cfgsync: container_name: cfgsync build: context: . dockerfile: testnet/Dockerfile image: nomos:latest volumes: - ./testnet:/etc/nomos entrypoint: /etc/nomos/scripts/run_cfgsync.sh nomos-node-0: container_name: nomos_node_0 build: context: . dockerfile: testnet/Dockerfile image: nomos:latest ports: - "3000:3000/udp" - "18080:18080/tcp" volumes: - ./testnet:/etc/nomos - ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z depends_on: - cfgsync entrypoint: /etc/nomos/scripts/run_nomos_node.sh nomos-node-1: container_name: nomos_node_1 build: context: . dockerfile: testnet/Dockerfile image: nomos:latest volumes: - ./testnet:/etc/nomos - ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z depends_on: - cfgsync ports: - "3001:3000/udp" - "18081:18080/tcp" entrypoint: /etc/nomos/scripts/run_nomos_node.sh nomos-node-2: container_name: nomos_node_2 build: context: . dockerfile: testnet/Dockerfile image: nomos:latest volumes: - ./testnet:/etc/nomos - ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z depends_on: - cfgsync ports: - "3002:3000/udp" - "18082:18080/tcp" entrypoint: /etc/nomos/scripts/run_nomos_node.sh nomos-node-3: container_name: nomos_node_3 build: context: . dockerfile: testnet/Dockerfile image: nomos:latest volumes: - ./testnet:/etc/nomos - ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z depends_on: - cfgsync ports: - "3003:3000/udp" - "18083:18080/tcp" entrypoint: /etc/nomos/scripts/run_nomos_executor.sh prometheus: container_name: prometheus image: prom/prometheus:latest volumes: - ./testnet/monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:z command: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.retention.time=7d - --enable-feature=otlp-write-receiver ports: - 127.0.0.1:9090:9090 restart: on-failure grafana: container_name: grafana image: grafana/grafana:latest environment: - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin - GF_AUTH_DISABLE_LOGIN_FORM=true - GF_FEATURE_TOGGLES_ENABLE=traceqlEditor traceQLStreaming metricsSummary env_file: - ./testnet/monitoring/grafana/plugins.env volumes: - ./testnet/monitoring/grafana/grafana.ini:/etc/grafana/grafana.ini:z - ./testnet/monitoring/grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml:z ports: - 9091:3000 restart: on-failure depends_on: - prometheus loki: image: grafana/loki:2.9.2 ports: - "3100:3100" command: -config.file=/etc/loki/local-config.yaml # Tempo runs as unpriviliged user, volumes need to be chowned before running. tempo-init: image: &tempoImage grafana/tempo:latest user: root entrypoint: - "chown" - "10001:10001" - "/var/tempo" tempo: image: *tempoImage container_name: tempo command: [ "-config.file=/etc/tempo.yaml" ] volumes: - ./testnet/monitoring/tempo.yaml:/etc/tempo.yaml:z ports: - "4317:4317" # otlp grpc depends_on: - tempo-init