-
Notifications
You must be signed in to change notification settings - Fork 56
Expand file tree
/
Copy pathcompose.yaml
More file actions
139 lines (139 loc) · 3.8 KB
/
compose.yaml
File metadata and controls
139 lines (139 loc) · 3.8 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
---
services:
grafana:
image: grafana/grafana:11.5.1
ports:
- 3000:3000
environment:
GF_AUTH_ANONYMOUS_ENABLED: true
GF_AUTH_ANONYMOUS_HIDE_VERSION: true
GF_AUTH_ANONYMOUS_ORG_ROLE: Admin
GF_AUTH_DISABLE_LOGIN_FORM: true
GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH: /etc/dashboards/home.json
GF_LIVE_ALLOWED_ORIGINS: "https://*.preview.app.github.dev"
volumes:
- type: bind
source: etc/grafana/provisioning
target: /etc/grafana/provisioning
- type: bind
source: etc/grafana/dashboards
target: /etc/dashboards
- grafana:/var/lib/grafana
pull_policy: missing
db:
image: ${POSTGRES_IMAGE:-postgres:17}
environment:
PGUSER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
volumes:
- db:/var/lib/postgresql
- ./etc/initdb.d/:/docker-entrypoint-initdb.d/
healthcheck:
test: /usr/bin/pg_isready
interval: 5s
timeout: 10s
retries: 5
pull_policy: missing
minio:
image: quay.io/minio/minio
command: server /data --console-address ":9001"
volumes:
- minio:/data
ports:
- 9000:9000
- 9001:9001
environment:
MINIO_PROMETHEUS_AUTH_TYPE: public
healthcheck:
test: timeout 5s bash -c ':> /dev/tcp/127.0.0.1/9000' || exit 1
interval: 5s
retries: 1
start_period: 5s
timeout: 5s
tansu:
image: ${TANSU_IMAGE}
restart: unless-stopped
environment:
RUST_BACKTRACE: ${RUST_BACKTRACE}
RUST_LOG: ${RUST_LOG}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_ENDPOINT: ${AWS_ENDPOINT}
AWS_ALLOW_HTTP: ${AWS_ALLOW_HTTP}
volumes:
- ./etc/schema/:/schema/
- ./data:/data/
command: |
--kafka-cluster-id ${CLUSTER_ID}
--kafka-listener-url tcp://0.0.0.0:9092/
--kafka-advertised-listener-url ${ADVERTISED_LISTENER_URL}
--storage-engine ${STORAGE_ENGINE}
--schema-registry file:///schema
ports:
- 9092:9092
- 9100:9100
jaeger:
image: jaegertracing/all-in-one
ports:
- 16686:16686
- 4317:4317
- 4318:4318
- 5778:5778
- 9411:9411
prometheus:
image: prom/prometheus:v3.1.0
ports:
- 9090:9090
command: --web.enable-otlp-receiver
extra_hosts:
- "host.docker.internal=host-gateway"
configs:
- source: prometheus_yaml
target: /prometheus/prometheus.yml
lakehouse-catalog:
image: ${LAKEKEEPER_IMAGE}
environment:
- LAKEKEEPER__PG_ENCRYPTION_KEY=This-is-NOT-Secure!
- LAKEKEEPER__PG_DATABASE_URL_READ=postgresql://postgres:postgres@db:5432/postgres
- LAKEKEEPER__PG_DATABASE_URL_WRITE=postgresql://postgres:postgres@db:5432/postgres
- RUST_LOG=trace,axum=trace,sqlx=trace,iceberg-catalog=trace
command: ["serve"]
healthcheck:
test: ["CMD", "/home/nonroot/iceberg-catalog", "healthcheck"]
interval: 1s
timeout: 10s
retries: 3
start_period: 3s
depends_on:
lakehouse-migrate:
condition: service_completed_successfully
db:
condition: service_healthy
minio:
condition: service_healthy
ports:
- "8181:8181"
lakehouse-migrate:
image: ${LAKEKEEPER_IMAGE}
environment:
- LAKEKEEPER__PG_ENCRYPTION_KEY=This-is-NOT-Secure!
- LAKEKEEPER__PG_DATABASE_URL_READ=postgresql://postgres:postgres@db:5432/postgres
- LAKEKEEPER__PG_DATABASE_URL_WRITE=postgresql://postgres:postgres@db:5432/postgres
- RUST_LOG=info
restart: "no"
command: ["migrate"]
depends_on:
db:
condition: service_healthy
configs:
prometheus_yaml:
file: etc/prometheus.yaml
volumes:
db:
driver: local
minio:
driver: local
grafana:
driver: local