docker-compose.yml 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. #
  2. # Copyright © 2016-2022 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: '2.2'
  17. services:
  18. zookeeper:
  19. restart: always
  20. image: "zookeeper:3.5"
  21. ports:
  22. - "2181"
  23. environment:
  24. ZOO_MY_ID: 1
  25. ZOO_SERVERS: server.1=zookeeper:2888:3888;zookeeper:2181
  26. redis:
  27. restart: always
  28. image: redis:4.0
  29. ports:
  30. - "6379"
  31. tb-js-executor:
  32. restart: always
  33. image: "${DOCKER_REPO}/${JS_EXECUTOR_DOCKER_NAME}:${TB_VERSION}"
  34. scale: 20
  35. env_file:
  36. - tb-js-executor.env
  37. tb-core1:
  38. restart: always
  39. image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
  40. ports:
  41. - "8080"
  42. - "7070"
  43. logging:
  44. driver: "json-file"
  45. options:
  46. max-size: "200m"
  47. max-file: "30"
  48. environment:
  49. TB_SERVICE_ID: tb-core1
  50. TB_SERVICE_TYPE: tb-core
  51. EDGES_ENABLED: "true"
  52. env_file:
  53. - tb-node.env
  54. volumes:
  55. - ./tb-node/conf:/config
  56. - ./tb-node/log:/var/log/thingsboard
  57. depends_on:
  58. - zookeeper
  59. - redis
  60. - tb-js-executor
  61. - tb-rule-engine1
  62. - tb-rule-engine2
  63. tb-core2:
  64. restart: always
  65. image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
  66. ports:
  67. - "8080"
  68. - "7070"
  69. logging:
  70. driver: "json-file"
  71. options:
  72. max-size: "200m"
  73. max-file: "30"
  74. environment:
  75. TB_SERVICE_ID: tb-core2
  76. TB_SERVICE_TYPE: tb-core
  77. EDGES_ENABLED: "true"
  78. env_file:
  79. - tb-node.env
  80. volumes:
  81. - ./tb-node/conf:/config
  82. - ./tb-node/log:/var/log/thingsboard
  83. depends_on:
  84. - zookeeper
  85. - redis
  86. - tb-js-executor
  87. - tb-rule-engine1
  88. - tb-rule-engine2
  89. tb-rule-engine1:
  90. restart: always
  91. image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
  92. ports:
  93. - "8080"
  94. logging:
  95. driver: "json-file"
  96. options:
  97. max-size: "200m"
  98. max-file: "30"
  99. environment:
  100. TB_SERVICE_ID: tb-rule-engine1
  101. TB_SERVICE_TYPE: tb-rule-engine
  102. env_file:
  103. - tb-node.env
  104. volumes:
  105. - ./tb-node/conf:/config
  106. - ./tb-node/log:/var/log/thingsboard
  107. depends_on:
  108. - zookeeper
  109. - redis
  110. - tb-js-executor
  111. tb-rule-engine2:
  112. restart: always
  113. image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
  114. ports:
  115. - "8080"
  116. logging:
  117. driver: "json-file"
  118. options:
  119. max-size: "200m"
  120. max-file: "30"
  121. environment:
  122. TB_SERVICE_ID: tb-rule-engine2
  123. TB_SERVICE_TYPE: tb-rule-engine
  124. env_file:
  125. - tb-node.env
  126. volumes:
  127. - ./tb-node/conf:/config
  128. - ./tb-node/log:/var/log/thingsboard
  129. depends_on:
  130. - zookeeper
  131. - redis
  132. - tb-js-executor
  133. tb-mqtt-transport1:
  134. restart: always
  135. image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
  136. ports:
  137. - "1883"
  138. environment:
  139. TB_SERVICE_ID: tb-mqtt-transport1
  140. env_file:
  141. - tb-mqtt-transport.env
  142. volumes:
  143. - ./tb-transports/mqtt/conf:/config
  144. - ./tb-transports/mqtt/log:/var/log/tb-mqtt-transport
  145. depends_on:
  146. - zookeeper
  147. tb-mqtt-transport2:
  148. restart: always
  149. image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
  150. ports:
  151. - "1883"
  152. environment:
  153. TB_SERVICE_ID: tb-mqtt-transport2
  154. env_file:
  155. - tb-mqtt-transport.env
  156. volumes:
  157. - ./tb-transports/mqtt/conf:/config
  158. - ./tb-transports/mqtt/log:/var/log/tb-mqtt-transport
  159. depends_on:
  160. - zookeeper
  161. tb-http-transport1:
  162. restart: always
  163. image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
  164. ports:
  165. - "8081"
  166. environment:
  167. TB_SERVICE_ID: tb-http-transport1
  168. env_file:
  169. - tb-http-transport.env
  170. volumes:
  171. - ./tb-transports/http/conf:/config
  172. - ./tb-transports/http/log:/var/log/tb-http-transport
  173. depends_on:
  174. - zookeeper
  175. tb-http-transport2:
  176. restart: always
  177. image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
  178. ports:
  179. - "8081"
  180. environment:
  181. TB_SERVICE_ID: tb-http-transport2
  182. env_file:
  183. - tb-http-transport.env
  184. volumes:
  185. - ./tb-transports/http/conf:/config
  186. - ./tb-transports/http/log:/var/log/tb-http-transport
  187. depends_on:
  188. - zookeeper
  189. tb-coap-transport:
  190. restart: always
  191. image: "${DOCKER_REPO}/${COAP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
  192. ports:
  193. - "5683:5683/udp"
  194. environment:
  195. TB_SERVICE_ID: tb-coap-transport
  196. env_file:
  197. - tb-coap-transport.env
  198. volumes:
  199. - ./tb-transports/coap/conf:/config
  200. - ./tb-transports/coap/log:/var/log/tb-coap-transport
  201. depends_on:
  202. - zookeeper
  203. tb-lwm2m-transport:
  204. restart: always
  205. image: "${DOCKER_REPO}/${LWM2M_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
  206. ports:
  207. - "5685:5685/udp"
  208. environment:
  209. TB_SERVICE_ID: tb-lwm2m-transport
  210. env_file:
  211. - tb-lwm2m-transport.env
  212. volumes:
  213. - ./tb-transports/lwm2m/conf:/config
  214. - ./tb-transports/lwm2m/log:/var/log/tb-lwm2m-transport
  215. depends_on:
  216. - zookeeper
  217. tb-snmp-transport:
  218. restart: always
  219. image: "${DOCKER_REPO}/${SNMP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
  220. environment:
  221. TB_SERVICE_ID: tb-snmp-transport
  222. env_file:
  223. - tb-snmp-transport.env
  224. volumes:
  225. - ./tb-transports/snmp/conf:/config
  226. - ./tb-transports/snmp/log:/var/log/tb-snmp-transport
  227. depends_on:
  228. - zookeeper
  229. tb-web-ui1:
  230. restart: always
  231. image: "${DOCKER_REPO}/${WEB_UI_DOCKER_NAME}:${TB_VERSION}"
  232. ports:
  233. - "8080"
  234. env_file:
  235. - tb-web-ui.env
  236. tb-web-ui2:
  237. restart: always
  238. image: "${DOCKER_REPO}/${WEB_UI_DOCKER_NAME}:${TB_VERSION}"
  239. ports:
  240. - "8080"
  241. env_file:
  242. - tb-web-ui.env
  243. haproxy:
  244. restart: always
  245. container_name: "${LOAD_BALANCER_NAME}"
  246. image: thingsboard/haproxy-certbot:1.3.0
  247. volumes:
  248. - ./haproxy/config:/config
  249. - ./haproxy/letsencrypt:/etc/letsencrypt
  250. - ./haproxy/certs.d:/usr/local/etc/haproxy/certs.d
  251. ports:
  252. - "80:80"
  253. - "443:443"
  254. - "1883:1883"
  255. - "7070:7070"
  256. - "9999:9999"
  257. cap_add:
  258. - NET_ADMIN
  259. environment:
  260. HTTP_PORT: 80
  261. HTTPS_PORT: 443
  262. MQTT_PORT: 1883
  263. EDGES_RPC_PORT: 7070
  264. FORCE_HTTPS_REDIRECT: "false"
  265. links:
  266. - tb-core1
  267. - tb-core2
  268. - tb-web-ui1
  269. - tb-web-ui2
  270. - tb-mqtt-transport1
  271. - tb-mqtt-transport2
  272. - tb-http-transport1
  273. - tb-http-transport2