-
Notifications
You must be signed in to change notification settings - Fork 324
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
176 lines (162 loc) · 6.17 KB
/
docker-compose.yaml
File metadata and controls
176 lines (162 loc) · 6.17 KB
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
services:
grafana:
image: grafana/grafana:12.4.0@sha256:b0ae311af06228bcfd4a620504b653db80f5b91e94dc3dc2a5b7dab202bcde20
environment:
GF_AUTH_ANONYMOUS_ENABLED: "false"
GF_INSTALL_PLUGINS: grafana-clickhouse-datasource
GF_LOG_LEVEL: debug
GF_SERVER_ROUTER_LOGGING: "true"
GF_RENDERING_SERVER_URL: http://renderer:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
ports:
- 3000:3000/tcp
volumes:
- ./testdata/provisioning:/etc/grafana/provisioning
- ./testdata/dashboards:/var/lib/grafana/dashboards
- type: tmpfs
target: /var/lib/grafana/empty-alerts-folder
renderer:
image: grafana/grafana-image-renderer:latest@sha256:a3e58eb1fe07482c96d5a7e19eda1c1f272732f29b4d7d20c11a73c889efaed2
ports:
- 8081
prometheus:
image: prom/prometheus@sha256:1f0f50f06acaceb0f5670d2c8a658a599affe7b0d8e78b898c1035653849a702
ports:
- "9090:9090"
entrypoint: /etc/prometheus/entrypoint.sh
volumes:
- ./testdata/prometheus.yml:/etc/prometheus/prometheus.yml
- ./testdata/prometheus-seed.yml:/etc/prometheus/prometheus-seed.yml
- ./testdata/prometheus-entrypoint.sh:/etc/prometheus/entrypoint.sh
loki:
image: grafana/loki:3.6.4@sha256:be31579ac047e9f78b81e48f3b69d3af709e7299b431d5aa78bcda43382f9511
ports:
- "3100:3100"
command: -config.file=/etc/loki/loki-config.yml
volumes:
- ./testdata/loki-config.yml:/etc/loki/loki-config.yml
- ./testdata/loki-rules.yml:/loki/rules/fake/loki-rules.yml
promtail:
image: grafana/promtail:3.6.3@sha256:130b6dd63277d99ce87560c0266c0c30d07bc15ba0a8a590d42215465d4f5363
volumes:
- ./testdata/promtail-config.yml:/etc/promtail/config.yml
- /var/run/docker.sock:/var/run/docker.sock
command: -config.file=/etc/promtail/config.yml
depends_on:
- loki
pyroscope:
image: grafana/pyroscope:1.18.0@sha256:e7edae4fd99dbb8695a1e03d7db96ab247630cf83842407908922b2f66aafc6a
ports:
- 4040:4040
tempo:
image: grafana/tempo:2.10.0-rc.0@sha256:ab73a4fa3586e866be3322507491b66d49c9607592128b72b3aad80e3b355a12
command: ["-config.file=/etc/tempo/tempo-config.yaml"]
volumes:
- ./testdata/tempo-config.yaml:/etc/tempo/tempo-config.yaml
ports:
- "3200:3200" # tempo HTTP API
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP HTTP receiver
tempo2:
image: grafana/tempo:2.10.0-rc.0@sha256:ab73a4fa3586e866be3322507491b66d49c9607592128b72b3aad80e3b355a12
command: ["-config.file=/etc/tempo/tempo-config.yaml"]
volumes:
- ./testdata/tempo-config-2.yaml:/etc/tempo/tempo-config.yaml
ports:
- "3201:3201" # tempo instance 2
alertmanager:
image: prom/alertmanager:v0.30.1@sha256:286ad8838533a5a01d89bd09643f43d2b68b65203123b5700e54a8f80ff9c1f4
ports:
- "9093:9093"
volumes:
- ./testdata/alertmanager.yml:/etc/alertmanager/alertmanager.yml
command:
- "--config.file=/etc/alertmanager/alertmanager.yml"
- "--storage.path=/alertmanager"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:9200/_cluster/health | grep -q '\"status\":\"green\"\\|\"status\":\"yellow\"'"]
interval: 10s
timeout: 5s
retries: 10
elasticsearch-seed:
image: curlimages/curl:8.12.1
depends_on:
elasticsearch:
condition: service_healthy
volumes:
- ./testdata/elasticsearch-seed.sh:/seed.sh
entrypoint: ["sh", "/seed.sh"]
localstack:
image: localstack/localstack:4.13@sha256:46302bcb91a7e8008e6394be8afafdbfa40fb77a54d4046a38be35992042d5de
ports:
- "4566:4566"
environment:
SERVICES: cloudwatch,logs
AWS_DEFAULT_REGION: us-east-1
EAGER_SERVICE_LOADING: 1
volumes:
- ./testdata/localstack-init.sh:/etc/localstack/init/ready.d/init.sh
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4566/_localstack/health"]
interval: 10s
timeout: 5s
retries: 5
clickhouse:
image: clickhouse/clickhouse-server:25.10@sha256:8d1a479c36a4556eeb0556ad36141b194cf6a4a4020f9def391c1570fd1570b7
ports:
- "8123:8123"
- "9000:9000"
volumes:
- ./testdata/clickhouse-init.sql:/docker-entrypoint-initdb.d/init.sql
- ./testdata/clickhouse-users.xml:/etc/clickhouse-server/users.d/default-user.xml
healthcheck:
test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
interval: 10s
timeout: 5s
retries: 5
influxdb3:
build:
dockerfile_inline: |
FROM influxdb:3-core@sha256:255268d2a5f42b8c38d373864a4ba72956d91e14a3361019706bfad2f7c039ab
COPY --chmod=777 ./testdata/tools/influxdb/influxdbv3-seed.sh /init.sh
ports:
- "8181:8181"
command: >
/bin/bash -c "/init.sh & influxdb3 serve --node-id=node0 --object-store=file --data-dir=/var/lib/influxdb3 --admin-token-file=/run/secrets/admin-token"
secrets:
- admin-token
influxdb2:
build:
dockerfile_inline: |
FROM influxdb:2
COPY --chmod=777 ./testdata/tools/influxdb/influxdbv2-seed.sh /docker-entrypoint-initdb.d/init.sh
ports:
- "8086:8086"
environment:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME_FILE: /run/secrets/influxdb2-admin-username
DOCKER_INFLUXDB_INIT_PASSWORD_FILE: /run/secrets/influxdb2-admin-password
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE: /run/secrets/influxdb2-admin-token
DOCKER_INFLUXDB_INIT_ORG: system-logs
DOCKER_INFLUXDB_INIT_BUCKET: b-system-logs
secrets:
- influxdb2-admin-username
- influxdb2-admin-password
- influxdb2-admin-token
secrets:
influxdb2-admin-username:
file: ./testdata/tools/influxdb/.env.influxdb2-admin-username
influxdb2-admin-password:
file: ./testdata/tools/influxdb/.env.influxdb2-admin-password
influxdb2-admin-token:
file: ./testdata/tools/influxdb/.env.influxdb2-admin-token
admin-token:
file: ./testdata/tools/influxdb/admin-token.json