# # Copyright © 2016-2018 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: '2.2' services: zookeeper: restart: always image: "zookeeper:3.5" ports: - "2181" kafka: restart: always image: "wurstmeister/kafka" ports: - "9092:9092" env_file: - kafka.env depends_on: - zookeeper redis: image: redis:4.0 ports: - "6379" tb-js-executor: restart: always image: "${DOCKER_REPO}/${JS_EXECUTOR_DOCKER_NAME}:${TB_VERSION}" scale: 20 env_file: - tb-js-executor.env depends_on: - kafka tb1: 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_HOST: tb1 env_file: - tb-node.env volumes: - ./tb-node/conf:/config - ./tb-node/log:/var/log/thingsboard depends_on: - kafka - redis tb2: 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_HOST: tb2 env_file: - tb-node.env volumes: - ./tb-node/conf:/config - ./tb-node/log:/var/log/thingsboard depends_on: - kafka - redis tb-mqtt-transport1: restart: always image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "1883" env_file: - tb-mqtt-transport.env depends_on: - kafka tb-mqtt-transport2: restart: always image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "1883" env_file: - tb-mqtt-transport.env depends_on: - kafka tb-http-transport1: restart: always image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "8081" env_file: - tb-http-transport.env depends_on: - kafka tb-http-transport2: restart: always image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "8081" env_file: - tb-http-transport.env depends_on: - kafka tb-coap-transport: restart: always image: "${DOCKER_REPO}/${COAP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "5683:5683/udp" env_file: - tb-coap-transport.env depends_on: - kafka 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 haproxy: restart: always container_name: haproxy-certbot image: xalauc/haproxy-certbot:1.7.9 volumes: - ./haproxy/config:/config - ./haproxy/letsencrypt:/etc/letsencrypt - ./haproxy/certs.d:/usr/local/etc/haproxy/certs.d ports: - "80:80" - "8080" - "443:443" - "1883:1883" - "9999:9999" cap_add: - NET_ADMIN environment: HTTP_PORT: 80 HTTPS_PORT: 443 MQTT_PORT: 1883 TB_API_PORT: 8080 FORCE_HTTPS_REDIRECT: "false" links: - tb1 - tb2 - tb-web-ui1 - tb-web-ui2 - tb-mqtt-transport1 - tb-mqtt-transport2 - tb-http-transport1 - tb-http-transport2