-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.swarm.arm.yml
192 lines (179 loc) · 4.02 KB
/
docker-compose.swarm.arm.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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
version: "3.8"
services:
api:
image: iselabdearborn/docker-grocery-api
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints: [node.role == worker]
ports:
- 3000:3000
environment:
DATABASE_URL: mongodb://admin:admin@mongo:27017
volumes:
- data-volume:/usr/app/api
depends_on:
- mongo
networks:
- app
creator:
image: iselabdearborn/docker-grocery-creator
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints: [node.role == worker]
environment:
API_URL: http://api:3000/api
volumes:
- data-volume:/usr/app/creator
depends_on:
- api
networks:
- app
web:
image: iselabdearborn/docker-grocery-web
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints: [node.role == worker]
environment:
API_URL: http://api:3000/api
ports:
- 8081:3000
volumes:
- data-volume:/usr/app/web
depends_on:
- api
networks:
- app
mongo:
image: webhippie/mongodb:latest
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints: [node.role == worker]
ports:
- 27017:27017
environment:
MONGODB_AUTH: "true"
MONGODB_ROOT_USERNAME: admin
MONGODB_ROOT_PASSWORD: admin
networks:
- app
mongodbexpress:
image: malaslt/mongo-express-arm:latest
deploy:
replicas: 1
restart_policy:
condition: on-failure
#placement:
# constraints: [node.role == worker]
ports:
- 8000:8081
environment:
ME_CONFIG_MONGODB_ENABLE_ADMIN: "true"
ME_CONFIG_MONGODB_SERVER: mongo
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: admin
depends_on:
- mongo
networks:
- app
visualizer:
image: alexellis2/visualizer-arm:latest
ports:
- 8070:8080
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- app
cadvisor:
image: carlosedp/rpi-cadvisor:latest
ports:
- 8050:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
deploy:
mode: global
command:
- --global_housekeeping_interval=30s
- --housekeeping_interval=5s
- --storage_duration=1m0s
networks:
- app
node-exporter:
image: jmb12686/node-exporter
ports:
- 9100:9100
environment:
- NODE_ID={{.Node.ID}}
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
- /etc/hostname:/etc/nodename
command:
- '--path.sysfs=/host/sys'
- '--path.procfs=/host/proc'
- '--collector.textfile.directory=/etc/node-exporter/'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
- '--no-collector.ipvs'
deploy:
mode: global
resources:
limits:
memory: 128M
reservations:
memory: 64M
networks:
- app
prometheus:
image: anwargh/prometheus:arch32
ports:
- "9090:9090"
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention=${PROMETHEUS_RETENTION:-24h}'
volumes:
- prometheus:/prometheus
configs:
- source: node_rules
target: /etc/prometheus/swarm_node.rules.yml
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
memory: 2048M
reservations:
memory: 128M
networks:
- app
networks:
app:
driver: overlay
volumes:
data-volume:
driver: local
prometheus: {}
configs:
node_rules:
file: ./swarm_node.rules.yml