-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdocker-compose.yml
150 lines (139 loc) · 3.54 KB
/
docker-compose.yml
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
version: "3.9"
volumes:
source_db_data:
target_db_data:
xapipe_store_data:
prometheus_data:
grafana_data:
configs:
prometheus_config:
file: ./prometheus.yml
grafana_config:
file: ./grafana.ini
grafana_datasource:
file: ./datasource.yaml
grafana_dashboard:
file: ./dashboard.yaml
grafana_dashboard_json:
file: ./xapipe_dashboard.json
services:
# Source LRS
source_db:
image: postgres:14
volumes:
- source_db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: lrsql_user
POSTGRES_PASSWORD: lrsql_password
POSTGRES_DB: lrsql_db
source_lrs:
image: yetanalytics/lrsql:latest
command:
- /lrsql/bin/run_postgres.sh
ports:
- "8080:8080"
depends_on:
- source_db
environment:
LRSQL_API_KEY_DEFAULT: my_key
LRSQL_API_SECRET_DEFAULT: my_secret
LRSQL_ADMIN_USER_DEFAULT: my_username
LRSQL_ADMIN_PASS_DEFAULT: my_password
LRSQL_DB_HOST: source_db
LRSQL_DB_NAME: lrsql_db
LRSQL_DB_USER: lrsql_user
LRSQL_DB_PASSWORD: lrsql_password
LRSQL_POOL_INITIALIZATION_FAIL_TIMEOUT: 10000
restart: always
# Target LRS
target_db:
image: postgres:14
volumes:
- target_db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: lrsql_user
POSTGRES_PASSWORD: lrsql_password
POSTGRES_DB: lrsql_db
target_lrs:
image: yetanalytics/lrsql:latest
command:
- /lrsql/bin/run_postgres.sh
ports:
- "8081:8081"
depends_on:
- target_db
environment:
LRSQL_HTTP_PORT: 8081
LRSQL_API_KEY_DEFAULT: my_key
LRSQL_API_SECRET_DEFAULT: my_secret
LRSQL_ADMIN_USER_DEFAULT: my_username
LRSQL_ADMIN_PASS_DEFAULT: my_password
LRSQL_DB_HOST: target_db
LRSQL_DB_NAME: lrsql_db
LRSQL_DB_USER: lrsql_user
LRSQL_DB_PASSWORD: lrsql_password
LRSQL_POOL_INITIALIZATION_FAIL_TIMEOUT: 10000
restart: always
# Xapipe
redis:
image: redis:6-alpine
volumes:
- xapipe_store_data:/data
ports:
- "6379"
# Dashboards
prometheus:
image: prom/prometheus
volumes:
- prometheus_data:/prometheus
ports:
- 9090:9090
configs:
- source: prometheus_config
target: /etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
volumes:
- grafana_data:/var/lib/grafana
depends_on:
- prometheus
ports:
- 3000:3000
configs:
- source: grafana_config
target: /etc/grafana/grafana.ini
- source: grafana_datasource
target: /etc/grafana/provisioning/datasources/datasource.yaml
- source: grafana_dashboard
target: /etc/grafana/provisioning/dashboards/dashboard.yaml
- source: grafana_dashboard_json
target: /etc/grafana/provisioning/dashboards/xapipe_dashboard.json
restart: always
pushgateway:
image: prom/pushgateway
depends_on:
- prometheus
ports:
- 9091:9091
restart: always
xapipe:
image: yetanalytics/xapipe:${DEMO_VERSION:-latest}
depends_on:
- source_lrs
- target_lrs
- redis
- pushgateway
command: |
-s redis
--job-id link_source_target
-f
--redis-uri redis://redis:6379
--source-url http://source_lrs:8080/xapi
--source-username my_key
--source-password my_secret
--target-url http://target_lrs:8081/xapi
--target-username my_key
--target-password my_secret
--metrics-reporter prometheus
--prometheus-push-gateway pushgateway:9091
restart: always