-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
124 lines (117 loc) · 3.03 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
version: '3'
networks:
dmz:
backend:
logging:
services:
fluent:
image: fluent/fluent-bit
ports:
- 127.0.0.1:24224:24224
networks:
- logging
edge:
image: traefik
command:
- --api
- --docker
- --docker.swarmMode
- --docker.watch
- --accessLog
- --accesslog.fields.defaultmode=keep
- --accessLog.format=json
- --traefikLog
- --traefikLog.format=json
- --web
- --web.metrics.prometheus
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- dmz
- backend
logging:
driver: "fluentd"
options:
fluentd-address: 127.0.0.1:24224
tag: edge
fluentd-async-connect:
mode: non-blocking
max-buffer-size: 4m
web1:
image: mattjtodd/go-http-canary
build: ./services
command: "-word=web1"
hostname: "{{.Service.Name}}-{{.Task.Slot}}-{{.Node.Hostname}}"
networks:
- backend
logging:
driver: "fluentd"
options:
fluentd-address: 127.0.0.1:24224
tag: web1
fluentd-async-connect:
mode: non-blocking
max-buffer-size: 4m
deploy:
replicas: 0
labels:
- "traefik.backend=web"
- "traefik.weight=1"
- "traefik.port=3000"
- "traefik.docker.network=backend"
- "traefik.frontend.rule=PathPrefixStrip: /web/"
- "traefik.backend.loadbalancer.stickiness=true"
- "traefik.backend.healthcheck.path=/health"
badCanary:
image: mattjtodd/go-http-canary
build: ./services
command: "-word=badCanary -badCanary=true"
hostname: "{{.Service.Name}}-{{.Task.Slot}}-{{.Node.Hostname}}"
networks:
- backend
logging:
driver: "fluentd"
options:
fluentd-address: 127.0.0.1:24224
tag: web2
fluentd-async-connect:
mode: non-blocking
max-buffer-size: 4m
deploy:
replicas: 0
labels:
- "traefik.backend=web"
- "traefik.weight=1"
- "traefik.port=3000"
- "traefik.docker.network=backend"
- "traefik.frontend.rule=PathPrefixStrip: /web/"
- "traefik.backend.loadbalancer.stickiness=true"
- "traefik.backend.healthcheck.path=/health"
goodCanary:
image: mattjtodd/go-http-canary
build: ./services
command: "-word=goodCanary -badCanary=false"
hostname: "{{.Service.Name}}-{{.Task.Slot}}-{{.Node.Hostname}}"
networks:
- backend
logging:
driver: "fluentd"
options:
fluentd-address: 127.0.0.1:24224
tag: web2
fluentd-async-connect:
mode: non-blocking
max-buffer-size: 4m
deploy:
replicas: 0
labels:
- "traefik.backend=web"
- "traefik.weight=1"
- "traefik.port=3000"
- "traefik.docker.network=backend"
- "traefik.frontend.rule=PathPrefixStrip: /web/"
- "traefik.backend.loadbalancer.stickiness=true"
- "traefik.backend.healthcheck.path=/health"