Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

114 righe
3.0 KiB

  1. version: "2"
  2. services:
  3. kafdrop:
  4. image: obsidiandynamics/kafdrop
  5. restart: "no"
  6. ports:
  7. - "127.0.0.1:9000:9000"
  8. environment:
  9. KAFKA_BROKERCONNECT: "kafka:29092"
  10. depends_on:
  11. - "kafka"
  12. kafka:
  13. image: apache/kafka:3.9.0
  14. restart: "no"
  15. ports:
  16. # - "127.0.0.1:2181:2181"
  17. - "127.0.0.1:9092:9092"
  18. - "127.0.0.1:9093:9093"
  19. healthcheck: # <-- ADD THIS BLOCK
  20. test: ["CMD-SHELL", "/opt/kafka/bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list"]
  21. interval: 10s
  22. timeout: 5s
  23. retries: 10
  24. start_period: 20s
  25. environment:
  26. KAFKA_NODE_ID: 1
  27. KAFKA_PROCESS_ROLES: broker,controller
  28. KAFKA_LISTENERS: INTERNAL://:29092,EXTERNAL://:9092,CONTROLLER://127.0.0.1:9093
  29. KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
  30. KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
  31. KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
  32. KAFKA_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093
  33. KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
  34. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  35. KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
  36. KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
  37. KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
  38. KAFKA_NUM_PARTITIONS: 3
  39. kafka-init:
  40. image: apache/kafka:3.9.0
  41. command: [ "/bin/bash", "-c", "chmod +x /tmp/create_topic.sh && /tmp/create_topic.sh"]
  42. depends_on:
  43. kafka:
  44. condition: service_healthy
  45. volumes:
  46. - ./init-scripts/create_topic.sh:/tmp/create_topic.sh
  47. environment:
  48. - TOPIC_NAMES=topic1,topic2,topic3
  49. valkey:
  50. image: valkey/valkey:9.0.0
  51. container_name: valkey
  52. ports:
  53. - "127.0.0.1:6379:6379"
  54. presense-decoder:
  55. build:
  56. context: ../
  57. dockerfile: build/package/Dockerfile.decoder
  58. image: presense-decoder
  59. container_name: presense-decoder
  60. environment:
  61. - KAFKA_URL=kafka:29092
  62. depends_on:
  63. - kafka-init
  64. restart: always
  65. presense-server:
  66. build:
  67. context: ../
  68. dockerfile: build/package/Dockerfile.server
  69. image: presense-server
  70. container_name: presense-server
  71. environment:
  72. - VALKEY_URL=valkey:6379
  73. - KAFKA_URL=kafka:29092
  74. ports:
  75. - "127.0.0.1:1902:1902"
  76. depends_on:
  77. - kafka-init
  78. - valkey
  79. restart: always
  80. presense-bridge:
  81. build:
  82. context: ../
  83. dockerfile: build/package/Dockerfile.bridge
  84. image: presense-bridge
  85. container_name: presense-bridge
  86. environment:
  87. - KAFKA_URL=kafka:29092
  88. - MQTT_HOST=192.168.1.101:1883
  89. - MQTT_USERNAME=user
  90. - MQTT_PASSWORD=pass
  91. depends_on:
  92. - kafka-init
  93. restart: always
  94. presense-location:
  95. build:
  96. context: ../
  97. dockerfile: build/package/Dockerfile.location
  98. image: presense-location
  99. container_name: presense-location
  100. environment:
  101. - KAFKA_URL=kafka:29092
  102. depends_on:
  103. - kafka-init
  104. restart: always