Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

119 строки
3.2 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: [ "sh", "-c", "ls -l /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. condition: service_completed_successfully
  65. restart: always
  66. presense-server:
  67. build:
  68. context: ../
  69. dockerfile: build/package/Dockerfile.server
  70. image: presense-server
  71. container_name: presense-server
  72. environment:
  73. - VALKEY_URL=valkey:6379
  74. - KAFKA_URL=kafka:29092
  75. ports:
  76. - "127.0.0.1:1902:1902"
  77. depends_on:
  78. valkey:
  79. condition: service_started
  80. kafka-init:
  81. condition: service_completed_successfully
  82. restart: always
  83. presense-bridge:
  84. build:
  85. context: ../
  86. dockerfile: build/package/Dockerfile.bridge
  87. image: presense-bridge
  88. container_name: presense-bridge
  89. environment:
  90. - KAFKA_URL=kafka:29092
  91. - MQTT_HOST=192.168.1.101:1883
  92. - MQTT_USERNAME=user
  93. - MQTT_PASSWORD=pass
  94. depends_on:
  95. kafka-init:
  96. condition: service_completed_successfully
  97. restart: always
  98. presense-location:
  99. build:
  100. context: ../
  101. dockerfile: build/package/Dockerfile.location
  102. image: presense-location
  103. container_name: presense-location
  104. environment:
  105. - KAFKA_URL=kafka:29092
  106. depends_on:
  107. kafka-init:
  108. condition: service_completed_successfully
  109. restart: always