forked from hashicorp-education/learn-consul-service-mesh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yaml
83 lines (78 loc) · 2.11 KB
/
docker-compose.yaml
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
version: "3.3"
services:
consul:
image: consul:1.9.0
command: ["consul","agent","-config-file=/config/consul-single-dc.hcl","-config-dir=/config"]
volumes:
- "./consul_config:/config"
ports:
- 8500:8500
networks:
vpcbr:
ipv4_address: 10.5.0.2
# Define web service and envoy sidecar proxy
web:
image: nicholasjackson/fake-service:v0.23.1
environment:
LISTEN_ADDR: 0.0.0.0:9091
UPSTREAM_URIS: "http://localhost:9092"
MESSAGE: "Hello World"
NAME: "web"
SERVER_TYPE: "http"
ports:
- "9091:9091"
networks:
vpcbr:
ipv4_address: 10.5.0.3
web_proxy:
image: nicholasjackson/consul-envoy:v1.9.2-v1.16.0
restart: always
environment:
CONSUL_HTTP_ADDR: 10.5.0.2:8500
CONSUL_GRPC_ADDR: 10.5.0.2:8502
SERVICE_CONFIG: /config/web.hcl
CENTRAL_CONFIG_DIR: /central_config
volumes:
- "./service_config:/config"
- "./central_config:/central_config"
command: ["consul", "connect", "envoy", "-sidecar-for", "web"]
network_mode: "service:web"
# Define api v1 service and envoy sidecar proxy
api_v1:
image: nicholasjackson/fake-service:v0.23.1
environment:
LISTEN_ADDR: 0.0.0.0:9092
MESSAGE: "Hello World"
NAME: "api-v1"
SERVER_TYPE: "http"
networks:
vpcbr:
ipv4_address: 10.5.0.4
api_v1_proxy:
image: nicholasjackson/consul-envoy:v1.9.2-v1.16.0
restart: always
environment:
CONSUL_HTTP_ADDR: 10.5.0.2:8500
CONSUL_GRPC_ADDR: 10.5.0.2:8502
SERVICE_CONFIG: /config/api-v1.hcl
CENTRAL_CONFIG_DIR: /central_config
volumes:
- "./service_config:/config"
- "./central_config:/central_config"
command: ["consul", "connect", "envoy", "-sidecar-for", "api-v1"]
network_mode: "service:api_v1"
prometheus:
image: prom/prometheus
ports:
- 9090:9090
volumes:
- "./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml"
networks:
vpcbr:
ipv4_address: 10.5.0.6
networks:
vpcbr:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16