docker-compose.redis-cluster.yml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. #
  2. # Copyright © 2016-2023 The Thingsboard Authors
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. #
  16. version: '3.0'
  17. services:
  18. # Redis cluster
  19. redis-node-0:
  20. image: bitnami/redis-cluster:7.0
  21. volumes:
  22. - ./tb-node/redis-cluster-data-0:/bitnami/redis/data
  23. environment:
  24. - 'REDIS_PASSWORD=thingsboard'
  25. - 'REDISCLI_AUTH=thingsboard'
  26. - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
  27. redis-node-1:
  28. image: bitnami/redis-cluster:7.0
  29. volumes:
  30. - ./tb-node/redis-cluster-data-1:/bitnami/redis/data
  31. depends_on:
  32. - redis-node-0
  33. environment:
  34. - 'REDIS_PASSWORD=thingsboard'
  35. - 'REDISCLI_AUTH=thingsboard'
  36. - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
  37. redis-node-2:
  38. image: bitnami/redis-cluster:7.0
  39. volumes:
  40. - ./tb-node/redis-cluster-data-2:/bitnami/redis/data
  41. depends_on:
  42. - redis-node-1
  43. environment:
  44. - 'REDIS_PASSWORD=thingsboard'
  45. - 'REDISCLI_AUTH=thingsboard'
  46. - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
  47. redis-node-3:
  48. image: bitnami/redis-cluster:7.0
  49. volumes:
  50. - ./tb-node/redis-cluster-data-3:/bitnami/redis/data
  51. depends_on:
  52. - redis-node-2
  53. environment:
  54. - 'REDIS_PASSWORD=thingsboard'
  55. - 'REDISCLI_AUTH=thingsboard'
  56. - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
  57. redis-node-4:
  58. image: bitnami/redis-cluster:7.0
  59. volumes:
  60. - ./tb-node/redis-cluster-data-4:/bitnami/redis/data
  61. depends_on:
  62. - redis-node-3
  63. environment:
  64. - 'REDIS_PASSWORD=thingsboard'
  65. - 'REDISCLI_AUTH=thingsboard'
  66. - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
  67. redis-node-5:
  68. image: bitnami/redis-cluster:7.0
  69. volumes:
  70. - ./tb-node/redis-cluster-data-5:/bitnami/redis/data
  71. depends_on:
  72. - redis-node-0
  73. - redis-node-1
  74. - redis-node-2
  75. - redis-node-3
  76. - redis-node-4
  77. environment:
  78. - 'REDIS_PASSWORD=thingsboard'
  79. - 'REDISCLI_AUTH=thingsboard'
  80. - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
  81. - 'REDIS_CLUSTER_REPLICAS=1'
  82. - 'REDIS_CLUSTER_CREATOR=yes'
  83. # ThingsBoard setup to use redis-cluster
  84. tb-core1:
  85. env_file:
  86. - cache-redis-cluster.env
  87. depends_on:
  88. - redis-node-5
  89. tb-core2:
  90. env_file:
  91. - cache-redis-cluster.env
  92. depends_on:
  93. - redis-node-5
  94. tb-rule-engine1:
  95. env_file:
  96. - cache-redis-cluster.env
  97. depends_on:
  98. - redis-node-5
  99. tb-rule-engine2:
  100. env_file:
  101. - cache-redis-cluster.env
  102. depends_on:
  103. - redis-node-5
  104. tb-mqtt-transport1:
  105. env_file:
  106. - cache-redis-cluster.env
  107. depends_on:
  108. - redis-node-5
  109. tb-mqtt-transport2:
  110. env_file:
  111. - cache-redis-cluster.env
  112. depends_on:
  113. - redis-node-5
  114. tb-http-transport1:
  115. env_file:
  116. - cache-redis-cluster.env
  117. depends_on:
  118. - redis-node-5
  119. tb-http-transport2:
  120. env_file:
  121. - cache-redis-cluster.env
  122. depends_on:
  123. - redis-node-5
  124. tb-coap-transport:
  125. env_file:
  126. - cache-redis-cluster.env
  127. depends_on:
  128. - redis-node-5
  129. tb-lwm2m-transport:
  130. env_file:
  131. - cache-redis-cluster.env
  132. depends_on:
  133. - redis-node-5
  134. tb-snmp-transport:
  135. env_file:
  136. - cache-redis-cluster.env
  137. depends_on:
  138. - redis-node-5
  139. tb-vc-executor1:
  140. env_file:
  141. - cache-redis-cluster.env
  142. depends_on:
  143. - redis-node-5
  144. tb-vc-executor2:
  145. env_file:
  146. - cache-redis-cluster.env
  147. depends_on:
  148. - redis-node-5