Healthcheck für Kafka implementiert
authorKai Moritz <kai@juplo.de>
Sun, 25 May 2025 18:35:18 +0000 (20:35 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 25 May 2025 21:26:02 +0000 (23:26 +0200)
docker-compose.yml

index 8c1fcb3..469463b 100644 (file)
@@ -55,8 +55,14 @@ services:
       KAFKA_LOG4J_LOGGERS: org.apache.kafka.metadata.migration=TRACE, kafka.authorizer.logger=INFO
     volumes:
       - kafka-1-data:/var/lib/kafka/data
+      - ./admin.properties:/mnt/admin.properties:ro
     ports:
       - 9081:9081
+    healthcheck:
+      test: "kafka-broker-api-versions --bootstrap-server :9091 --command-config /mnt/admin.properties"
+      interval: 1s
+      timeout: 0s
+      retries: 30
     stop_grace_period: 120s
     depends_on:
       zookeeper:
@@ -103,6 +109,7 @@ services:
       KAFKA_LOG4J_LOGGERS: org.apache.kafka.metadata.migration=TRACE, kafka.authorizer.logger=INFO
     volumes:
       - kafka-2-data:/var/lib/kafka/data
+      - ./admin.properties:/mnt/admin.properties:ro
     ports:
       - 9092:9082
       - 9082:9082
@@ -110,6 +117,11 @@ services:
       default:
         aliases:
           - kafka
+    healthcheck:
+      test: "kafka-broker-api-versions --bootstrap-server :9091 --command-config /mnt/admin.properties"
+      interval: 1s
+      timeout: 0s
+      retries: 30
     stop_grace_period: 120s
     depends_on:
       zookeeper:
@@ -156,9 +168,15 @@ services:
       KAFKA_LOG4J_LOGGERS: org.apache.kafka.metadata.migration=TRACE, kafka.authorizer.logger=INFO
     volumes:
       - kafka-3-data:/var/lib/kafka/data
+      - ./admin.properties:/mnt/admin.properties:ro
     ports:
       - 9083:9083
     stop_grace_period: 120s
+    healthcheck:
+      test: "kafka-broker-api-versions --bootstrap-server :9091 --command-config /mnt/admin.properties"
+      interval: 1s
+      timeout: 0s
+      retries: 30
     depends_on:
       zookeeper:
         condition: service_healthy
@@ -170,9 +188,12 @@ services:
       - ./admin.properties:/mnt/admin.properties:ro
     stop_grace_period: 0s
     depends_on:
-      - kafka-1
-      - kafka-2
-      - kafka-3
+      kafka-1:
+        condition: service_healthy
+      kafka-2:
+        condition: service_healthy
+      kafka-3:
+        condition: service_healthy
 
   setup:
     image: juplo/toolbox
@@ -207,7 +228,8 @@ services:
         fi
     stop_grace_period: 0s
     depends_on:
-      - cli
+      cli:
+        condition: service_started
 
   akhq:
     image: tchiotludo/akhq:0.23.0
@@ -226,9 +248,12 @@ services:
                 - name: "connect"
                   url: "http://connect:8083"
     depends_on:
-      - kafka-1
-      - kafka-2
-      - kafka-3
+      kafka-1:
+        condition: service_healthy
+      kafka-2:
+        condition: service_healthy
+      kafka-3:
+        condition: service_healthy
 
   producer:
     image: juplo/spring-producer:2.0-json-SNAPSHOT