-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompose.yaml
166 lines (156 loc) · 4.15 KB
/
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
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
services:
springdb:
image: postgres:latest
restart: "no"
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD:
POSTGRES_DB: spring
POSTGRES_HOST_AUTH_METHOD: trust
TZ: Europe/Rome
ports:
- "5432:5432" # serve database
networks:
- spring-lessons-dev
jaeger:
image: jaegertracing/all-in-one:latest
restart: "no"
environment:
COLLECTOR_OTLP_ENABLED: true
TZ: Europe/Rome
ports:
- "6831" # accept jaeger.thrift over Thrift-compact protocol (used by most SDKs)
- "6832" # accept jaeger.thrift over Thrift-binary protocol (used by Node.js SDK)
- "5778" # serve configs (sampling, etc.)
- "16686:16686" # serve frontend
- "4317" # accept OpenTelemetry Protocol (OTLP) over gRPC
- "4318" # accept OpenTelemetry Protocol (OTLP) over HTTP
- "14268" # accept jaeger.thrift directly from clients
- "14250" # accept model.proto
- "9411" # Zipkin compatible endpoint (optional)
networks:
- spring-lessons-dev
loki:
image: grafana/loki:main
restart: "no"
environment:
TZ: Europe/Rome
command:
- -config.file=/etc/loki/local-config.yaml
volumes:
- ./loki/local-config.yaml:/etc/loki/local-config.yaml
ports:
- "3100" # serve http server
- "9096" # serve grpc server
networks:
- spring-lessons-dev
prometheus:
image: prom/prometheus:main
restart: "no"
environment:
TZ: Europe/Rome
command:
- --config.file=/etc/prometheus/prometheus.yml
volumes:
- ./prometheus/prometheus-config.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090" # serve frontend
networks:
- spring-lessons-dev
depends_on:
- otelcol
grafana:
image: grafana/grafana:main
restart: "no"
environment:
TZ: Europe/Rome
volumes:
- ./grafana/grafana.ini:/etc/grafana/grafana.ini
- ./grafana/provisioning/:/etc/grafana/provisioning/
ports:
- "3000:3000" # serve frontend
networks:
- spring-lessons-dev
depends_on:
- prometheus
- loki
- jaeger
otelcol:
image: otel/opentelemetry-collector-contrib:latest
restart: "no"
environment:
TZ: Europe/Rome
command:
- --config=/etc/otelcol-config.yml
volumes:
- ./otel/otelcol-config.yml:/etc/otelcol-config.yml
ports:
- "1888" # pprof extension
- "8888" # Prometheus metrics exposed by the Collector
- "8889" # Prometheus exporter metrics
- "13133" # health_check extension
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP http receiver
- "55679" # zpages extension
depends_on:
- jaeger
networks:
- spring-lessons-dev
zookeeper:
image: bitnami/zookeeper:latest
restart: "no"
environment:
TZ: Europe/Rome
ALLOW_ANONYMOUS_LOGIN: yes
ports:
- "2181:2181" # serve zookeeper
networks:
- spring-lessons-dev
kafka:
image: bitnami/kafka:latest
restart: "no"
environment:
TZ: Europe/Rome
KAFKA_CFG_NODE_ID: 0
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: true
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
ports:
- "9092:9092" # serve broker
depends_on:
- zookeeper
networks:
- spring-lessons-dev
keycloak:
image: quay.io/keycloak/keycloak:latest
restart: "no"
environment:
TZ: Europe/Rome
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: adminpwd
command:
- start-dev
volumes:
- ./keycloak:/opt/keycloak/data
ports:
- "8080:8080" # serve web server
networks:
- spring-lessons-dev
wiremock:
image: wiremock/wiremock:latest
restart: "no"
environment:
TZ: Europe/Rome
entrypoint: ["/docker-entrypoint.sh", "--global-response-templating", "--disable-gzip", "--verbose"]
volumes:
- ./wiremock/extensions:/var/wiremock/extensions
- ./wiremock/__files:/home/wiremock/__files
- ./wiremock/mappings:/home/wiremock/mappings
ports:
- "9999:8080" # serve web server
networks:
- spring-lessons-dev
networks:
spring-lessons-dev:
driver: bridge