-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
97 lines (93 loc) · 3.17 KB
/
Copy pathdocker-compose.yml
File metadata and controls
97 lines (93 loc) · 3.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
# Sentinel local stack. `make compose-up` waits for healthchecks.
services:
postgres:
image: pgvector/pgvector:pg16
environment:
POSTGRES_USER: sentinel
POSTGRES_PASSWORD: sentinel
POSTGRES_DB: sentinel
volumes:
- sentinel_pg:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U sentinel -d sentinel"]
interval: 2s
timeout: 3s
retries: 30
redis:
image: redis:7-alpine
command: ["redis-server", "--appendonly", "yes"]
volumes:
- sentinel_redis:/data
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 2s
timeout: 3s
retries: 30
kafka:
image: apache/kafka:3.7.0
environment:
KAFKA_NODE_ID: "1"
KAFKA_PROCESS_ROLES: "broker,controller"
KAFKA_LISTENERS: "PLAINTEXT://:9092,CONTROLLER://:9093,PLAINTEXT_HOST://:29092"
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT"
KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka:9093"
KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT"
CLUSTER_ID: "5L6g3nShT-eMCtK--X86sw"
# Single-broker KRaft: __consumer_offsets and __transaction_state can't
# achieve the default replication factor of 3, so creation hangs and
# FindCoordinator returns NOT_AVAILABLE forever (gh#36). Force RF=1.
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: "1"
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: "1"
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: "1"
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: "0"
ports:
- "9092:9092"
- "29092:29092"
volumes:
- sentinel_kafka:/var/lib/kafka/data
healthcheck:
test: ["CMD-SHELL", "/opt/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --list >/dev/null 2>&1"]
interval: 5s
timeout: 5s
retries: 30
app:
build:
context: .
dockerfile: Dockerfile
command: ["sentinel-api"]
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
environment:
SENTINEL_ENV: dev
SENTINEL_POSTGRES_DSN: postgresql+asyncpg://sentinel:sentinel@postgres:5432/sentinel
SENTINEL_REDIS_URL: redis://redis:6379/0
SENTINEL_KAFKA_BROKERS: kafka:9092
SENTINEL_ANTHROPIC_API_KEY: ${SENTINEL_ANTHROPIC_API_KEY:-sk-placeholder}
SENTINEL_SENTRY_WEBHOOK_SECRET: ${SENTINEL_SENTRY_WEBHOOK_SECRET:-}
SENTINEL_PAGERDUTY_WEBHOOK_SECRET: ${SENTINEL_PAGERDUTY_WEBHOOK_SECRET:-}
SENTINEL_DATADOG_WEBHOOK_SECRET: ${SENTINEL_DATADOG_WEBHOOK_SECRET:-}
SENTINEL_GENERIC_WEBHOOK_SECRET: ${SENTINEL_GENERIC_WEBHOOK_SECRET:-}
SENTINEL_HTTP_HOST: 0.0.0.0
SENTINEL_HTTP_PORT: "8000"
ports:
- "8000:8000"
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost:8000/healthz || exit 1"]
interval: 3s
timeout: 3s
retries: 20
volumes:
sentinel_pg:
sentinel_redis:
sentinel_kafka: