-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
95 lines (86 loc) · 4.04 KB
/
docker-compose.yml
File metadata and controls
95 lines (86 loc) · 4.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
services:
coordinator:
# Both the coordinator and the worker services use the same image.
image: nebulastream/nes-executable-image:latest
# Use a custom entry point to run the coordinator process and specify the configuration file.
entrypoint: "nesCoordinator --configPath=/config/coordinator.yaml"
# Expose port 8081, so that the UI (which runs in the browser of the host) can communicate with the coordinator.
# The worker services will only start after the coordinator starts accepting connection on this port.
ports:
- 8081:8081
# Mount the folder with the NebulaStream configuration.
volumes:
- ./config/nebulastream:/config
producers-worker:
# Both the coordinator and the worker services use the same image.
image: nebulastream/nes-executable-image:latest
# Use a custom entry point to run the worker process and specify the configuration file.
entrypoint: "nesWorker --configPath=/config/producers-worker.yaml"
# Only start the worker service when the coordinator service listens on 8081.
depends_on:
- coordinator
# Mount the folder with the NebulaStream configuration.
volumes:
- ./config/nebulastream:/config
consumers-worker-1:
# Both the coordinator and the worker services use the same image.
image: nebulastream/nes-executable-image:latest
# Use a custom entry point to run the worker process and specify the configuration file.
entrypoint: "nesWorker --configPath=/config/consumers-worker-1.yaml"
# Only start the worker service when the coordinator service listens on 8081.
depends_on:
- coordinator
# Mount the folder with the NebulaStream configuration.
volumes:
- ./config/nebulastream:/config
consumers-worker-2:
# Both the coordinator and the worker services use the same image.
image: nebulastream/nes-executable-image:latest
# Use a custom entry point to run the worker process and specify the configuration file.
entrypoint: "nesWorker --configPath=/config/consumers-worker-2.yaml"
# Only start the worker service when the coordinator service listens on 8081.
depends_on:
- coordinator
# Mount the folder with the NebulaStream configuration.
volumes:
- ./config/nebulastream:/config
# The datatown service runs the 3D smart city visualization and also publishes events to MQTT topics.
datatown:
image: nebulastream/nes-smart-city-image:latest
# Access the 3D smart city visualization inside the browser on the host system.
ports:
- 9003:9003
# The UI lets us run and monitor queries, and shows information about the NebulaStream system.
ui:
image: nebulastream/nes-ui-image:latest
# Access the UI inside the browser on the host system.
ports:
- 9000:9000
# Mosquitto is used to exchange events between the data generator, NebulaStream workers, and the 3D visualization.
mosquitto:
image: eclipse-mosquitto
ports:
# Port 1883 listens over TCP and can be used with Mosquitto command line tools on the host system.
- 1883:1883
# Port 9001 listens over Websockets and is used by the workers, by the 3D visualization, and by Grafana.
- 9001:9001
volumes:
- ./config/mosquitto:/mosquitto/config
# Grafana is used to visualize the input data and the result of the queries.
# Access the dashboard: http://localhost:3000/
# Note that the datasource has to be reconfigured, whenever the container is restarted.
grafana:
# Build a custom Grafana docker image to provision the MQTT datasource
# and a dashboard to show the data generated by the tutorial code.
# https://grafana.com/docs/grafana/latest/setup-grafana/configure-docker/
# https://grafana.com/docs/grafana/latest/administration/provisioning/
build: ./config/grafana
restart: unless-stopped
# Access Grafana inside the browser on the host system.
ports:
- 3000:3000
# Provide a docker volume to persist changes to the Grafana configuration.
volumes:
- grafana-storage:/var/lib/grafana
volumes:
grafana-storage: {}