-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
124 lines (123 loc) · 3.52 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'
services:
dotnet:
image: mcr.microsoft.com/devcontainers/dotnet:8.0
links:
- auth:${HQ_AUTH_HOSTNAME}
depends_on:
- db
- auth
environment:
- DB_NAME=${HQ_DB_NAME}
- DB_HOST=${HQ_DB_HOST}
- DB_USER=${HQ_DB_USER}
- DB_PORT=${HQ_DB_PORT}
- DB_SSL_MODE=${HQ_DB_SSL_MODE}
- DB_PASSWORD=${HQ_DB_PASSWORD}
- AUTH_ISSUER=${HQ_AUTH_ISSUER}
- AUTH_AUDIENCE=${HQ_AUTH_AUDIENCE}
- AUTH_ADMIN_URL=${HQ_AUTH_ADMIN_URL}
- HQ_SERVER__OPENTELEMETRY=true
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317/
volumes:
- .:/workspace:cached
- dotnet-nuget:/home/vscode/.nuget/
command: sleep infinity
hq:
image: mcr.microsoft.com/devcontainers/typescript-node:20
volumes:
- .:/workspace:cached
- hq-node_modules:/workspace/src/angular/hq/node_modules/
- hq-angular:/workspace/src/angular/hq/.angular/
command: sleep infinity
environment:
- HQ_API_URL=${HQ_API_URL}
- HQ_AUTH_AUTHORITY_URL=${HQ_AUTH_ISSUER}
- HQ_AUTH_CLIENT_ID=hq
- HQ_AUTH_SCOPES=openid profile email offline_access
- VERSION=0.0.0
auth:
build: src/auth/
depends_on:
- db
volumes:
- ./src/auth/import:/opt/keycloak/data/import
- ./src/auth/themes:/opt/keycloak/themes
environment:
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=${HQ_AUTH_ADMIN_PASSWORD}
- KC_HOSTNAME=${HQ_AUTH_HOSTNAME}
- KC_DB=postgres
- KC_DB_URL=jdbc:postgresql://${HQ_AUTH_DB_HOST}:5432/${HQ_AUTH_DB_NAME}
- KC_DB_USERNAME=${HQ_AUTH_DB_USER}
- KC_DB_PASSWORD=${HQ_AUTH_DB_PASSWORD}
command: start-dev --import-realm
auth-dev:
image: mcr.microsoft.com/devcontainers/base:debian-12
volumes:
- .:/workspace:cached
command: sleep infinity
db:
image: postgres:16
restart: always
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- db-data:/var/lib/postgresql/data
- ./hack/db-init:/docker-entrypoint-initdb.d
grafana:
image: grafana/grafana:11.1.5
restart: unless-stopped
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_AUTH_DISABLE_LOGIN_FORM=true
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor traceQLStreaming metricsSummary
volumes:
- ./grafana-datasource.yml:/etc/grafana/provisioning/datasources/grafana-datasource.yml
tempo-init:
image: &tempoImage grafana/tempo:2.6.0-rc.1
user: root
entrypoint:
- "chown"
- "10001:10001"
- "/var/tempo"
volumes:
- tempo-data:/var/tempo
tempo:
image: *tempoImage
command: [ "-config.file=/etc/tempo.yml" ]
volumes:
- ./tempo.yml:/etc/tempo.yml
- tempo-data:/var/tempo
depends_on:
- tempo-init
prometheus:
image: prom/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- --web.enable-remote-write-receiver
- --enable-feature=exemplar-storage
- --enable-feature=native-histograms
restart: unless-stopped
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prom-data:/prometheus
otel-collector:
image: otel/opentelemetry-collector-contrib:0.108.0
volumes:
- ./otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml
loki:
image: grafana/loki:3.1.0
command: "-config.file=/etc/loki/config.yaml -target=all"
volumes:
- ./loki-config.yaml:/etc/loki/config.yaml
- loki-data:/loki
volumes:
dotnet-nuget:
hq-node_modules:
hq-angular:
db-data:
tempo-data:
prom-data:
loki-data: