-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yaml
169 lines (169 loc) · 7.9 KB
/
docker-compose.yaml
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
version: '2.1'
services:
zookeeper:
hostname: zookeeper
container_name: zookeeper
image: quay.io/strimzi/kafka:0.31.0-kafka-3.2.0-arm64
command: [
"sh", "-c",
"bin/zookeeper-server-start.sh config/zookeeper.properties"
]
ports:
- 2181:2181
environment:
LOG_DIR: /tmp/logs
networks:
- demo-network
kafka:
hostname: kafka
container_name: kafka
image: quay.io/strimzi/kafka:0.31.0-kafka-3.2.0-arm64
command: [
"sh", "-c",
"bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT} --override num.partitions=$${KAFKA_NUM_PARTITIONS} --override group.min.session.timeout.ms=$${KAFKA_GROUP_MIN_SESSION_TIMEOUT_MS}"
]
depends_on:
- zookeeper
ports:
- 9092:9092
environment:
LOG_DIR: "/tmp/logs"
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_NUM_PARTITIONS: 1
KAFKA_GROUP_MIN_SESSION_TIMEOUT_MS: 100
networks:
- demo-network
connect:
hostname: connect
container_name: connect
image: quay.io/strimzi/kafka:0.31.0-kafka-3.2.0-arm64
command: [
"sh", "-c",
"bin/connect-distributed.sh /home/kafka/connect/connect-distributed.properties"
]
depends_on:
- kafka
ports:
- 8083:8083
volumes:
- ./docker/.config/connect:/home/kafka/connect
- ./docker/.config/connect/debezium-connector-mongodb:/home/kafka/plugins/debezium-connector-mongodb
- ./docker/.config/connect/secrets:/home/kafka/secrets
- ./docker/.config/connect/smt:/home/kafka/plugins/smt
- ./docker/.config/connect/camel-minio-kafka-connector:/home/kafka/plugins/camel-minio-kafka-connector
environment:
LOG_DIR: "/tmp/logs"
networks:
- demo-network
mongodb-rs-setup:
container_name: mongodb-rs-setup
image: mongo:6.0.1
restart: on-failure
volumes:
- ./docker/.config/mongodb/mongosetup.sh:/home/mongosetup.sh
entrypoint: ["bash", "/home/mongosetup.sh"]
depends_on:
- mongodb
networks:
- demo-network
mongodb:
image: mongo:6.0.1
hostname: mongodb
container_name: mongodb
restart: on-failure
command: ["--port", "27017", "--replSet", "rs0", "--bind_ip_all"]
expose:
- 27017
ports:
- 27017:27017
networks:
- demo-network
healthcheck:
test: echo 'rs.status().ok' | mongosh admin --port 27017 --quiet | grep 1
interval: 30s
start_period: 60s
minio:
hostname: minio
container_name: minio
image: minio/minio:RELEASE.2022-09-07T22-25-02Z@sha256:a87e3fd1f434e10dc7f60cf8829e6d295c812c955680ab5e763c448a5401bcaf
ports:
- 9000:9000
- 9001:9001
volumes:
- ./data/minio:/data
command: server /data --console-address ":9001"
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=minio12345
networks:
- demo-network
minio-bucket-init:
container_name: minio-bucket-init
image: minio/mc:RELEASE.2022-09-16T09-16-47Z@sha256:21cf0088ce85d4ec5eab76dd293532b1688973c8a789d6b4fe182c532e110dc0
depends_on:
- minio
entrypoint: >
/bin/sh -c "
sleep 10;
/usr/bin/mc alias set myminio http://minio:9000 admin minio12345;
/usr/bin/mc mb myminio/k4k-decrypted;
/usr/bin/mc policy set public myminio/k4k-decrypted;
"
networks:
- demo-network
schema-registry:
image: quay.io/apicurio/apicurio-registry-mem:2.3.1.Final@sha256:8b8a9cb4dd2d492fe85b4baf15164e642830be81906450db9287125312443b1a
hostname: schema-registry
container_name: schema-registry
depends_on:
- kafka
ports:
- 8080:8080
networks:
- demo-network
ksqldb-server:
image: confluentinc/cp-ksqldb-server:7.2.1.arm64
hostname: ksqldb-server
container_name: ksqldb-server
depends_on:
- kafka
- connect
- schema-registry
ports:
- 8088:8088
volumes:
- ./extensions/:/opt/ksqldb-udfs
networks:
- demo-network
environment:
KSQL_BOOTSTRAP_SERVERS: "kafka:9092"
KSQL_HOST_NAME: ksqldb-server
KSQL_LISTENERS: "http://0.0.0.0:8088"
KSQL_CACHE_MAX_BYTES_BUFFERING: 0
KSQL_KSQL_SCHEMA_REGISTRY_URL: "http://schema-registry:8080"
KSQL_KSQL_CONNECT_URL: "http://connect:8083"
KSQL_KSQL_LOGGING_PROCESSING_TOPIC_REPLICATION_FACTOR: 1
KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: 'true'
KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: 'true'
KSQL_KSQL_FUNCTIONS_K4KENCRYPT_CIPHER_DATA_KEYS: "[{\"identifier\":\"keyA\",\"material\":{\"primaryKeyId\":1000000001,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesGcmKey\",\"value\":\"GhDRulECKAC8/19NMXDjeCjK\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000001,\"outputPrefixType\":\"TINK\"}]}},{\"identifier\":\"keyB\",\"material\":{\"primaryKeyId\":1000000002,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesGcmKey\",\"value\":\"GiBIZWxsbyFXb3JsZEZVQ0sxYWJjZGprbCQxMjM0NTY3OA==\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000002,\"outputPrefixType\":\"TINK\"}]}},{\"identifier\":\"key9\",\"material\":{\"primaryKeyId\":1000000003,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesSivKey\",\"value\":\"EkByiHi3H9shy2FO5UWgStNMmgqF629esenhnm0wZZArUkEU1/9l9J3ajJQI0GxDwzM1WFZK587W0xVB8KK4dqnz\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000003,\"outputPrefixType\":\"TINK\"}]}},{\"identifier\":\"key8\",\"material\":{\"primaryKeyId\":1000000004,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesSivKey\",\"value\":\"EkBWT3ZL7DmAN91erW3xAzMFDWMaQx34Su3VlaMiTWzjVDbKsH3IRr2HQFnaMvvVz2RH/+eYXn3zvAzWJbReCto/\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000004,\"outputPrefixType\":\"TINK\"}]}}]"
KSQL_KSQL_FUNCTIONS_K4KENCRYPT_CIPHER_DATA_KEY_IDENTIFIER: "keyA"
KSQL_KSQL_FUNCTIONS_K4KDECRYPT_CIPHER_DATA_KEYS: "[{\"identifier\":\"keyA\",\"material\":{\"primaryKeyId\":1000000001,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesGcmKey\",\"value\":\"GhDRulECKAC8/19NMXDjeCjK\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000001,\"outputPrefixType\":\"TINK\"}]}},{\"identifier\":\"keyB\",\"material\":{\"primaryKeyId\":1000000002,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesGcmKey\",\"value\":\"GiBIZWxsbyFXb3JsZEZVQ0sxYWJjZGprbCQxMjM0NTY3OA==\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000002,\"outputPrefixType\":\"TINK\"}]}},{\"identifier\":\"key9\",\"material\":{\"primaryKeyId\":1000000003,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesSivKey\",\"value\":\"EkByiHi3H9shy2FO5UWgStNMmgqF629esenhnm0wZZArUkEU1/9l9J3ajJQI0GxDwzM1WFZK587W0xVB8KK4dqnz\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000003,\"outputPrefixType\":\"TINK\"}]}},{\"identifier\":\"key8\",\"material\":{\"primaryKeyId\":1000000004,\"key\":[{\"keyData\":{\"typeUrl\":\"type.googleapis.com/google.crypto.tink.AesSivKey\",\"value\":\"EkBWT3ZL7DmAN91erW3xAzMFDWMaQx34Su3VlaMiTWzjVDbKsH3IRr2HQFnaMvvVz2RH/+eYXn3zvAzWJbReCto/\",\"keyMaterialType\":\"SYMMETRIC\"},\"status\":\"ENABLED\",\"keyId\":1000000004,\"outputPrefixType\":\"TINK\"}]}}]"
KSQL_KSQL_EXTENSION_DIR: "/opt/ksqldb-udfs"
ksqldb-cli:
image: confluentinc/cp-ksqldb-cli:7.2.1.arm64
container_name: ksqldb-cli
depends_on:
- kafka
- connect
- ksqldb-server
volumes:
- ./data/ksql:/home
entrypoint: /bin/sh
tty: true
networks:
- demo-network
networks:
demo-network:
name: sample-scenario