-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdocker-compose.yaml
138 lines (129 loc) · 3.53 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
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
services:
prometheus:
restart: always
image: prom/prometheus:v2.50.1
container_name: prometheus
command:
- '--storage.tsdb.retention.time=7d'
- '--config.file=/etc/prometheus/prometheus.yml'
volumes:
- ./docker/prometheus/prometheus-config.yaml:/etc/prometheus/prometheus.yaml
- prometheus-data:/prometheus
otel-collector:
image: otel/opentelemetry-collector-contrib:0.95.0
restart: always
command: [ "--config=/etc/otel-collector-config.yaml" ]
volumes:
- ./docker/otel-collector/otel-collector-config.yaml:/etc/otel-collector-config.yaml
depends_on:
- prometheus
tempo:
image: grafana/tempo:latest
command: [ "-config.file=/etc/tempo-config.yml" ]
volumes:
- ./docker/tempo/tempo-config.yaml:/etc/tempo-config.yml
- tempo-data:/tmp/tempo
grafana:
restart: always
image: grafana/grafana:10.3.1
container_name: grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=pass
ports:
- "3001:3000"
volumes:
- ./docker/grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
depends_on:
- prometheus
mariadb:
image: mariadb:latest
restart: always
container_name: mariadb
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: animaldb
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "10006:3306"
volumes:
- ./docker/mariadb/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
- mariadb-data:/var/lib/mysql
official-auto-otel-animal-app:
restart: always
build:
context: ./official-auto-otel-animal-app
dockerfile: Dockerfile
container_name: official-auto-otel-animal-app
env_file:
- ./docker/otel-service-config.env
environment:
- OTEL_SERVICE_NAME=official-auto-otel-animal-app
- SPRING_DATASOURCE_URL=jdbc:mariadb://mariadb:3306/animaldb
deploy:
resources:
limits:
memory: 1024M
depends_on:
- mariadb
ports:
- "8081:8080"
aspect-based-otel-animal-app:
restart: always
build:
context: ./aspect-based-otel-animal-app
dockerfile: Dockerfile
container_name: aspect-based-otel-animal-app
env_file:
- ./docker/otel-service-config.env
environment:
- OTEL_SERVICE_NAME=aspect-based-otel-animal-app
- SPRING_DATASOURCE_URL=jdbc:mariadb://mariadb:3306/animaldb
deploy:
resources:
limits:
memory: 1024M
depends_on:
- mariadb
ports:
- "8082:8080"
extension-based-otel-animal-app:
restart: always
build:
context: ./extension-based-otel-animal-app
dockerfile: Dockerfile
container_name: extension-based-otel-animal-app
env_file:
- ./docker/otel-service-config.env
environment:
- OTEL_SERVICE_NAME=extension-based-otel-animal-app
- SPRING_DATASOURCE_URL=jdbc:mariadb://mariadb:3306/animaldb
deploy:
resources:
limits:
memory: 1024M
depends_on:
- mariadb
ports:
- "8083:8080"
legacy-tomcat-spring-app:
restart: always
build:
context: ./legacy-tomcat-spring-app
dockerfile: Dockerfile
container_name: legacy-tomcat-spring-app
env_file:
- ./docker/otel-service-config.env
environment:
- OTEL_SERVICE_NAME=legacy-tomcat-spring-app
deploy:
resources:
limits:
memory: 1024M
entrypoint: [ "catalina.sh", "run" ]
ports:
- "8084:8080"
volumes:
prometheus-data:
tempo-data:
mariadb-data: