1+
2+ x-database-config : &database_config
3+ MYSQL_USER : ${MYSQL_USER:-observability}
4+ MYSQL_PASSWORD : ${MYSQL_PASSWORD}
5+
6+ x-database-client-config : &database_client_config
7+ MYSQL_SERVICE_HOST : ${MYSQL_HOST:-database}
8+ MYSQL_SERVICE_PORT : ${MYSQL_PORT:-3306}
9+
10+ services :
11+ broker :
12+ container_name : kafka
13+ image : apache/kafka:3.9.1
14+ restart : always
15+ expose : ["9092", "9093"]
16+ environment :
17+ # Core KRaft mode
18+ KAFKA_PROCESS_ROLES : broker,controller
19+ KAFKA_NODE_ID : 1
20+ KAFKA_CONTROLLER_QUORUM_VOTERS : 1@broker:9093
21+ KAFKA_CONTROLLER_LISTENER_NAMES : CONTROLLER
22+ # Networking
23+ KAFKA_LISTENERS : PLAINTEXT://:9092,CONTROLLER://:9093
24+ KAFKA_ADVERTISED_LISTENERS : PLAINTEXT://broker:9092
25+ KAFKA_LISTENER_SECURITY_PROTOCOL_MAP : CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
26+ KAFKA_INTER_BROKER_LISTENER_NAME : PLAINTEXT
27+ KAFKA_LOG4J_LOGGER_kafka_server_DefaultAutoTopicCreationManager : WARN
28+ # Transactions
29+ KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR : 1
30+ KAFKA_TRANSACTION_STATE_LOG_MIN_ISR : 1
31+ # Other
32+ KAFKA_LOG4J_LOGGERS : " kafka=WARN,org.apache.kafka=WARN"
33+ volumes :
34+ - /var/lib/kafka/data
35+ healthcheck :
36+ test : [ "CMD", "/opt/kafka/bin/kafka-topics.sh", "--bootstrap-server", "localhost:9092", "--list" ]
37+ interval : 10s
38+ timeout : 5s
39+ retries : 5
40+
41+ database :
42+ container_name : mysql
43+ image : mysql:8.4
44+ restart : always
45+ expose : ["3306"]
46+ environment :
47+ MYSQL_ROOT_PASSWORD : ${MYSQL_ROOT_PASSWORD}
48+ MYSQL_DATABASE : datakitchen
49+ << : *database_config
50+ healthcheck :
51+ test : [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
52+ interval : 5s
53+ retries : 5
54+
55+ observability_data_init :
56+ container_name : data-init
57+ image : datakitchen/dataops-observability-be
58+ pull_policy : never
59+ restart : on-failure
60+ depends_on :
61+ database :
62+ condition : service_healthy
63+ broker :
64+ condition : service_healthy
65+ environment :
66+ OBSERVABILITY_CONFIG : minikube
67+ << : [*database_config, *database_client_config]
68+ entrypoint : /bin/sh -c '/dk/bin/cli migrate'
69+
70+ observability_backend :
71+ container_name : back-end
72+ image : datakitchen/dataops-observability-be
73+ pull_policy : never
74+ restart : always
75+ depends_on :
76+ observability_data_init :
77+ condition : service_completed_successfully
78+ expose : ["5000", "5001", "5002"]
79+ environment :
80+ OBSERVABILITY_CONFIG : minikube
81+ KAFKA_SERVICE_HOST : ${KAFKA_HOST:-broker}
82+ KAFKA_SERVICE_PORT : ${KAFKA_PORT:-9092}
83+ << : [*database_config, *database_client_config]
84+ healthcheck :
85+ test : [ "CMD", "/bin/sh", "-c", "supervisorctl -c /dk/supervisord.conf status | grep -q RUNNING" ]
86+ interval : 5s
87+ retries : 10
88+ volumes :
89+ - type : bind
90+ source : ../conf/supervisord.conf
91+ target : /dk/supervisord.conf
92+
93+ observability_ui :
94+ container_name : user-interface
95+ image : datakitchen/dataops-observability-ui
96+ pull_policy : never
97+ restart : always
98+ depends_on :
99+ observability_backend :
100+ condition : service_healthy
101+ environment :
102+ OBSERVABILITY_API_HOSTNAME : ${OBSERVABILITY_API_HOSTNAME}
103+ OBSERVABILITY_CSP_EXTRA : ${observability_csp_extra}
104+ links :
105+ - " observability_backend:observability-api"
106+ - " observability_backend:event-api"
107+ - " observability_backend:agent-api"
108+ ports :
109+ - " 8080:8082"
110+
111+ networks :
112+ datakitchen :
113+ name : datakitchen-network
114+ external : true
0 commit comments