-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
126 lines (126 loc) · 5.1 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
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
networks:
kafka-bridge-network:
driver: bridge
sql-bridge-network:
driver: bridge
services:
broker:
image: apache/kafka:latest
hostname: $KAFKA_BROKER_HOSTNAME
container_name: $KAFKA_BROKER_HOSTNAME
ports:
- $KAFKA_BROKER_EXTERNAL_PORT:$KAFKA_BROKER_EXTERNAL_PORT
- $KAFKA_BROKER_JMX_PORT:$KAFKA_BROKER_JMX_PORT
environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,CONTROLLER:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://$KAFKA_BROKER_HOSTNAME:$KAFKA_BROKER_INTERNAL_PORT,PLAINTEXT_HOST://localhost:$KAFKA_BROKER_EXTERNAL_PORT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_PROCESS_ROLES: $KAFKA_BROKER_HOSTNAME,controller
KAFKA_NODE_ID: 1
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@$KAFKA_BROKER_HOSTNAME:29093
KAFKA_LISTENERS: PLAINTEXT://$KAFKA_BROKER_HOSTNAME:$KAFKA_BROKER_INTERNAL_PORT,CONTROLLER://$KAFKA_BROKER_HOSTNAME:29093,PLAINTEXT_HOST://0.0.0.0:$KAFKA_BROKER_EXTERNAL_PORT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LOG_DIRS: /tmp/kraft-combined-logs
CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk
KAFKA_JMX_PORT: $KAFKA_BROKER_JMX_PORT
KAFKA_JMX_OPTS: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=kafka0 -Dcom.sun.management.jmxremote.rmi.port=$KAFKA_BROKER_JMX_PORT
networks:
- "kafka-bridge-network"
schema-registry:
image: confluentinc/cp-schema-registry:latest
hostname: $KAFKA_SCHEMA_HOSTNAME
container_name: $KAFKA_SCHEMA_HOSTNAME
ports:
- ${KAFKA_SCHEMA_PORT}:${KAFKA_SCHEMA_PORT}
environment:
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: PLAINTEXT://$KAFKA_BROKER_HOSTNAME:$KAFKA_BROKER_INTERNAL_PORT
SCHEMA_REGISTRY_HOST_NAME: $KAFKA_SCHEMA_HOSTNAME
SCHEMA_REGISTRY_LISTENERS: http://$KAFKA_SCHEMA_HOSTNAME:${KAFKA_SCHEMA_PORT}
SCHEMA_REGISTRY_KAFKASTORE_SECURITY_PROTOCOL: PLAINTEXT
SCHEMA_REGISTRY_SCHEMA_REGISTRY_INTER_INSTANCE_PROTOCOL: "http"
SCHEMA_REGISTRY_LOG4J_ROOT_LOGLEVEL: INFO
SCHEMA_REGISTRY_KAFKASTORE_TOPIC: _schemas
networks:
- "kafka-bridge-network"
depends_on:
- $KAFKA_BROKER_HOSTNAME
kafka-ui:
image: provectuslabs/kafka-ui:latest
hostname: kafka_ui
container_name: kafka_ui
ports:
- ${KAFKA_UI_PORT}:${KAFKA_UI_PORT}
depends_on:
- schema-registry
- broker
- kafka-connect
environment:
KAFKA_CLUSTERS_0_NAME: local
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: $KAFKA_BROKER_HOSTNAME:$KAFKA_BROKER_INTERNAL_PORT
KAFKA_CLUSTERS_0_METRICS_PORT: $KAFKA_BROKER_JMX_PORT
KAFKA_CLUSTERS_0_$KAFKA_SCHEMA_HOSTNAME: http://$KAFKA_SCHEMA_HOSTNAME:${KAFKA_SCHEMA_PORT}
DYNAMIC_CONFIG_ENABLED: 'true'
networks:
- "kafka-bridge-network"
sql-server:
hostname: $SQL_SERVER
container_name: $SQL_SERVER
build:
dockerfile: ./DockerFiles/Sql
ports:
- $SQL_PORT:$SQL_PORT
networks:
- sql-bridge-network
environment:
- ACCEPT_EULA=Y
- MSSQL_SA_PASSWORD=$SQL_PASSWORD
- SA_PASSWORD=$SQL_PASSWORD
kafka-connect:
# image: confluentinc/cp-kafka-connect:latest
hostname: $KAFKA_CONNECT_HOSTNAME
container_name: $KAFKA_CONNECT_HOSTNAME
build:
dockerfile: ./DockerFiles/KafkaConnect
ports:
- $KAFKA_CONNECT_PORT:$KAFKA_CONNECT_PORT
environment:
CONNECT_BOOTSTRAP_SERVERS: $KAFKA_BROKER_HOSTNAME:$KAFKA_BROKER_INTERNAL_PORT
CONNECT_GROUP_ID: compose-connect-group
CONNECT_CONFIG_STORAGE_TOPIC: _connect_configs
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
CONNECT_OFFSET_STORAGE_TOPIC: _connect_offset
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
CONNECT_STATUS_STORAGE_TOPIC: _connect_status
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
CONNECT_KEY_CONVERTER: io.confluent.connect.json.JsonSchemaConverter
CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: http://$KAFKA_SCHEMA_HOSTNAME:$KAFKA_SCHEMA_PORT
CONNECT_VALUE_CONVERTER: io.confluent.connect.json.JsonSchemaConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://$KAFKA_SCHEMA_HOSTNAME:$KAFKA_SCHEMA_PORT
CONNECT_REST_ADVERTISED_HOST_NAME: $KAFKA_CONNECT_HOSTNAME
CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components"
networks:
- kafka-bridge-network
- sql-bridge-network
depends_on:
- sql-server
- broker
- schema-registry
connector-creator:
container_name: connector-creator
build:
dockerfile: ./DockerFiles/Executor
args:
- KAFKA_CONNECT_ENDPOINT=$KAFKA_CONNECT_HOSTNAME:$KAFKA_CONNECT_PORT
- SQL_USERNAME=$SQL_USERNAME
- SQL_PASSWORD=$SQL_PASSWORD
- SQL_SERVER=$SQL_SERVER
- DATABASE=$DATABASE
networks:
- kafka-bridge-network
depends_on:
- kafka-connect