version: "3.9" services: redis: image: redis:latest container_name: "redis" networks: - backend influx: image: influxdb:latest container_name: "influx" environment: - INFLUXDB_DB=db0 - INFLUXDB_HTTP_FLUX_ENABLED networks: - backend - monitor grafana: image: grafana/grafana:latest container_name: "grafana" ports: - "3000:3000" networks: - monitor depends_on: - influx mongo: image: mongo:latest container_name: "mongo" networks: - backend backend: build: ./server container_name: "backend" deploy: restart_policy: condition: on-failure delay: 5s max_attempts: 3 window: 120s ports: - "8000:8000" volumes: - ./server:/usr/src/app/server - /usr/src/app/server/node_modules networks: - backend - frontend depends_on: - redis - influx - mongo frontend: build: ./web container_name: "frontend" deploy: restart_policy: condition: on-failure delay: 5s max_attempts: 3 window: 120s ports: - "8080:8080" volumes: - ./web:/usr/src/app/web - /usr/src/app/web/node_modules networks: - frontend depends_on: - backend test_client: build: ./client container_name: "test_client" volumes: - ./client:/usr/src/app/client - /usr/src/app/client/node_modules networks: - backend depends_on: - backend networks: backend: frontend: monitor: