-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathdocker-compose.yml
76 lines (75 loc) · 3.11 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
version: '3.9'
services:
postgres:
image: debezium/postgres:16
ports:
- 5432:5432
volumes:
- ${POSTGRESDB_ROOT:-./postgresdb}:/var/lib/postgresql/data
command: postgres -c max_connections=1024 -c shared_buffers=94GB -c work_mem=8GB -c max_wal_size=16GB -c tcp_keepalives_idle=60 -c tcp_keepalives_interval=60 -c tcp_keepalives_count=60 -c shared_preload_libraries=decoderbufs -c wal_level=logical -c max_wal_senders=1 -c max_replication_slots=1 -c max_connections=2048
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
shm_size: 16G
restart: always
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=postgres
logging:
driver: local
options:
max-size: 1G
cdc-using-debezium-kafka:
image: bitnami/kafka:3.4
container_name: cdc-using-debezium-kafka
volumes:
- ${KAFKA_ROOT:-/kafka}:/bitnami/kafka
- ./server.properties:/opt/bitnami/kafka/config/server.properties
- ./kafka-2_0_0.yml:/opt/prometheus/kafka-2_0_0.yml
- ./jmx_prometheus_javaagent-1.0.1.jar:/opt/prometheus/jmx_prometheus_javaagent-1.0.1.jar
hostname: cdc-using-debezium-kafka
restart: always
ports:
- '9092:9092'
- '7072:7072'
environment:
KAFKA_CFG_NODE_ID: 1
KAFKA_KRAFT_CLUSTER_ID: ${KAFKA_UUID} # base64 UUID
KAFKA_CFG_PROCESS_ROLES: controller,broker
KAFKA_CFG_LISTENERS: INTERNAL://cdc-using-debezium-kafka:29092,CONTROLLER://cdc-using-debezium-kafka:29093,EXTERNAL://0.0.0.0:9092
KAFKA_CFG_ADVERTISED_LISTENERS: INTERNAL://cdc-using-debezium-kafka:29092,EXTERNAL://localhost:9092
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@cdc-using-debezium-kafka:29093
KAFKA_CFG_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
JMX_PORT: 9998
JMX_PROMETHEUS_PORT: 7072
KAFKA_JMX_OPTS: -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Djava.net.preferIPv4Stack=true -javaagent:/opt/prometheus/jmx_prometheus_javaagent-1.0.1.jar=7072:/opt/prometheus/kafka-2_0_0.yml
cdc-using-debezium-connect:
image: debezium/connect:2.7
container_name: cdc-using-debezium-connect
hostname: cdc-using-debezium-connect
restart: always
ports:
- '8083:8083'
environment:
BOOTSTRAP_SERVERS: cdc-using-debezium-kafka:29092
GROUP_ID: 1
CONFIG_STORAGE_TOPIC: my_connect_configs
OFFSET_STORAGE_TOPIC: my_connect_offsets
STATUS_STORAGE_TOPIC: my_connect_statuses
ENABLE_DEBEZIUM_SCRIPTING: 'true'
# CONNECT_CONNECTOR_CLIENT_CONFIG_OVERRIDE_POLICY: 'true'
links:
- cdc-using-debezium-kafka
- postgres
kafdrop:
image: obsidiandynamics/kafdrop:latest
ports:
- 9000:9000
depends_on:
- cdc-using-debezium-kafka
environment:
KAFKA_BROKERCONNECT: cdc-using-debezium-kafka:29092