329 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			329 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
#
 | 
						|
# Copyright © 2016-2022 The Thingsboard Authors
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
#
 | 
						|
 | 
						|
 | 
						|
version: '3.0'
 | 
						|
 | 
						|
services:
 | 
						|
  zookeeper:
 | 
						|
    restart: always
 | 
						|
    image: "zookeeper:3.8.0"
 | 
						|
    ports:
 | 
						|
      - "2181"
 | 
						|
    environment:
 | 
						|
      ZOO_MY_ID: 1
 | 
						|
      ZOO_SERVERS: server.1=zookeeper:2888:3888;zookeeper:2181
 | 
						|
      ZOO_ADMINSERVER_ENABLED: "false"
 | 
						|
  tb-js-executor:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${JS_EXECUTOR_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    deploy:
 | 
						|
      replicas: 10
 | 
						|
    env_file:
 | 
						|
      - tb-js-executor.env
 | 
						|
  tb-core1:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8080"
 | 
						|
      - "7070"
 | 
						|
    logging:
 | 
						|
      driver: "json-file"
 | 
						|
      options:
 | 
						|
        max-size: "200m"
 | 
						|
        max-file: "30"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-core1
 | 
						|
      TB_SERVICE_TYPE: tb-core
 | 
						|
      EDGES_ENABLED: "true"
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-node.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-node/conf:/config
 | 
						|
      - ./tb-node/log:/var/log/thingsboard
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-js-executor
 | 
						|
      - tb-rule-engine1
 | 
						|
      - tb-rule-engine2
 | 
						|
  tb-core2:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8080"
 | 
						|
      - "7070"
 | 
						|
    logging:
 | 
						|
      driver: "json-file"
 | 
						|
      options:
 | 
						|
        max-size: "200m"
 | 
						|
        max-file: "30"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-core2
 | 
						|
      TB_SERVICE_TYPE: tb-core
 | 
						|
      EDGES_ENABLED: "true"
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-node.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-node/conf:/config
 | 
						|
      - ./tb-node/log:/var/log/thingsboard
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-js-executor
 | 
						|
      - tb-rule-engine1
 | 
						|
      - tb-rule-engine2
 | 
						|
  tb-rule-engine1:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8080"
 | 
						|
    logging:
 | 
						|
      driver: "json-file"
 | 
						|
      options:
 | 
						|
        max-size: "200m"
 | 
						|
        max-file: "30"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-rule-engine1
 | 
						|
      TB_SERVICE_TYPE: tb-rule-engine
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-node.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-node/conf:/config
 | 
						|
      - ./tb-node/log:/var/log/thingsboard
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-js-executor
 | 
						|
  tb-rule-engine2:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8080"
 | 
						|
    logging:
 | 
						|
      driver: "json-file"
 | 
						|
      options:
 | 
						|
        max-size: "200m"
 | 
						|
        max-file: "30"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-rule-engine2
 | 
						|
      TB_SERVICE_TYPE: tb-rule-engine
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-node.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-node/conf:/config
 | 
						|
      - ./tb-node/log:/var/log/thingsboard
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-js-executor
 | 
						|
  tb-mqtt-transport1:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "1883"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-mqtt-transport1
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-mqtt-transport.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-transports/mqtt/conf:/config
 | 
						|
      - ./tb-transports/mqtt/log:/var/log/tb-mqtt-transport
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-mqtt-transport2:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "1883"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-mqtt-transport2
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-mqtt-transport.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-transports/mqtt/conf:/config
 | 
						|
      - ./tb-transports/mqtt/log:/var/log/tb-mqtt-transport
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-http-transport1:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8081"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-http-transport1
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-http-transport.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-transports/http/conf:/config
 | 
						|
      - ./tb-transports/http/log:/var/log/tb-http-transport
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-http-transport2:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8081"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-http-transport2
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-http-transport.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-transports/http/conf:/config
 | 
						|
      - ./tb-transports/http/log:/var/log/tb-http-transport
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-coap-transport:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${COAP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "5683:5683/udp"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-coap-transport
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-coap-transport.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-transports/coap/conf:/config
 | 
						|
      - ./tb-transports/coap/log:/var/log/tb-coap-transport
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-lwm2m-transport:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${LWM2M_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "5685:5685/udp"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-lwm2m-transport
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-lwm2m-transport.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-transports/lwm2m/conf:/config
 | 
						|
      - ./tb-transports/lwm2m/log:/var/log/tb-lwm2m-transport
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-snmp-transport:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${SNMP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-snmp-transport
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-snmp-transport.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-transports/snmp/conf:/config
 | 
						|
      - ./tb-transports/snmp/log:/var/log/tb-snmp-transport
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-web-ui1:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${WEB_UI_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8080"
 | 
						|
    env_file:
 | 
						|
      - tb-web-ui.env
 | 
						|
  tb-web-ui2:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${WEB_UI_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8080"
 | 
						|
    env_file:
 | 
						|
      - tb-web-ui.env
 | 
						|
  tb-vc-executor1:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${TB_VC_EXECUTOR_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8081"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-vc-executor1
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-vc-executor.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-vc-executor/conf:/config
 | 
						|
      - ./tb-vc-executor/log:/var/log/tb-vc-executor
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  tb-vc-executor2:
 | 
						|
    restart: always
 | 
						|
    image: "${DOCKER_REPO}/${TB_VC_EXECUTOR_DOCKER_NAME}:${TB_VERSION}"
 | 
						|
    ports:
 | 
						|
      - "8081"
 | 
						|
    environment:
 | 
						|
      TB_SERVICE_ID: tb-vc-executor2
 | 
						|
      JAVA_OPTS: "${JAVA_OPTS}"
 | 
						|
    env_file:
 | 
						|
      - tb-vc-executor.env
 | 
						|
    volumes:
 | 
						|
      - ./tb-vc-executor/conf:/config
 | 
						|
      - ./tb-vc-executor/log:/var/log/tb-vc-executor
 | 
						|
    depends_on:
 | 
						|
      - zookeeper
 | 
						|
      - tb-core1
 | 
						|
      - tb-core2
 | 
						|
  haproxy:
 | 
						|
    restart: always
 | 
						|
    container_name: "${LOAD_BALANCER_NAME}"
 | 
						|
    image: thingsboard/haproxy-certbot:1.3.0
 | 
						|
    volumes:
 | 
						|
     - ./haproxy/config:/config
 | 
						|
     - ./haproxy/letsencrypt:/etc/letsencrypt
 | 
						|
     - ./haproxy/certs.d:/usr/local/etc/haproxy/certs.d
 | 
						|
    ports:
 | 
						|
     - "80:80"
 | 
						|
     - "443:443"
 | 
						|
     - "1883:1883"
 | 
						|
     - "7070:7070"
 | 
						|
     - "9999:9999"
 | 
						|
    cap_add:
 | 
						|
     - NET_ADMIN
 | 
						|
    environment:
 | 
						|
      HTTP_PORT: 80
 | 
						|
      HTTPS_PORT: 443
 | 
						|
      MQTT_PORT: 1883
 | 
						|
      EDGES_RPC_PORT: 7070
 | 
						|
      FORCE_HTTPS_REDIRECT: "false"
 | 
						|
    links:
 | 
						|
        - tb-core1
 | 
						|
        - tb-core2
 | 
						|
        - tb-web-ui1
 | 
						|
        - tb-web-ui2
 | 
						|
        - tb-mqtt-transport1
 | 
						|
        - tb-mqtt-transport2
 | 
						|
        - tb-http-transport1
 | 
						|
        - tb-http-transport2
 |