-
Notifications
You must be signed in to change notification settings - Fork 107
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
131 lines (126 loc) · 4.42 KB
/
docker-compose.yml
File metadata and controls
131 lines (126 loc) · 4.42 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
name: feldera
services:
pipeline-manager:
tty: true
image: images.feldera.com/feldera/pipeline-manager:${FELDERA_VERSION:-latest}
ports:
# If you change the host side of the port mapping here, don't forget to
# also add a corresponding --allowed-origins argument to the pipeline
# manager command below (e.g., --allowed-origins "http://localhost:xyz").
# Otherwise, browsers will complain about CORS errors
- "8080:8080"
stop_grace_period: 0s
environment:
- RUST_LOG=info,actix_web=error,tokio_postgres=info
- RUST_BACKTRACE=1
- FELDERA_AUTH_CLIENT_ID
- FELDERA_AUTH_ISSUER
healthcheck:
# TODO: add `/status` endpoint.
test:
[
"CMD-SHELL",
"curl --fail --request GET --url http://localhost:8080/healthz"
]
interval: 10s
timeout: 5s
retries: 5
redpanda:
profiles: [ "redpanda", "kafka-connect",
"demo-debezium-mysql", "demo-supply-chain-tutorial",
"demo-snowflake-sink", "demo-debezium-jdbc", "demo-debezium-postgres",
"demo-simple-count" ]
command:
- redpanda
- start
- --kafka-addr internal://0.0.0.0:9092,external://0.0.0.0:19092
# Address the broker advertises to clients that connect to the Kafka API.
# Use the internal addresses to connect to the Redpanda brokers'
# from inside the same Docker network.
# Use the external addresses to connect to the Redpanda brokers'
# from outside the Docker network.
- --advertise-kafka-addr internal://redpanda:9092,external://localhost:19092
- --pandaproxy-addr internal://0.0.0.0:8082,external://0.0.0.0:18082
# Address the broker advertises to clients that connect to the HTTP Proxy.
- --advertise-pandaproxy-addr internal://redpanda:8082,external://localhost:18082
- --schema-registry-addr internal://0.0.0.0:8081,external://0.0.0.0:18081
# Redpanda brokers use the RPC API to communicate with eachother internally.
- --rpc-addr redpanda:33145
- --advertise-rpc-addr redpanda:33145
# Tells Seastar (the framework Redpanda uses under the hood) to use 1 core on the system.
- --smp 1
# The amount of memory to make available to Redpanda.
- --memory 2G
# Mode dev-container uses well-known configuration properties for development in containers.
- --mode dev-container
# enable logs for debugging.
- --default-log-level=error
image: redpandadata/redpanda:v24.2.4
ports:
- 18081:18081
- 18082:18082
- 19092:19092
- 19644:9644
healthcheck:
test:
[
"CMD-SHELL",
"rpk cluster health | grep -E 'Healthy:.+true' || exit 1"
]
interval: 10s
timeout: 3s
retries: 5
start_period: 5s
nats:
profiles: [ "nats" ]
image: nats:alpine
ports:
- "4222:4222" # Client connections
- "8222:8222" # HTTP monitoring
- "6222:6222" # Cluster routing
command: ["-js", "-m", "8222"] # Enable JetStream and monitoring
healthcheck:
test: ["CMD", "wget", "--spider", "--quiet", "http://localhost:8222/healthz"]
interval: 10s
timeout: 3s
retries: 5
start_period: 5s
nats-cli:
# Utilities for NATS testing and management
# Usage: docker compose exec nats-cli sh
# Then nats cli tool is available.
profiles: [ "nats" ]
image: natsio/nats-box:latest
depends_on:
- nats
environment:
- NATS_URL=nats://nats:4222
command: ["sleep", "infinity"] # Keep container running for interactive use
prometheus:
profiles: [ "prometheus", "grafana" ]
depends_on:
pipeline-manager:
condition: service_healthy
image: prom/prometheus:latest
ports:
- 9090:9090
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
healthcheck:
test: ["CMD", "wget", "--spider", "--quiet", "http://localhost:9090/-/healthy"]
interval: 30s
timeout: 10s
retries: 3
start_period: 50s
grafana:
profiles: [ "grafana" ]
depends_on:
prometheus:
condition: service_healthy
image: grafana/grafana:latest
ports:
- 3000:3000
restart: unless-stopped
volumes:
- ./config/grafana_data_sources.yaml:/etc/grafana/provisioning/datasources/grafana_data_sources.yaml