#!/bin/bash # # 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. # function additionalComposeArgs() { source .env ADDITIONAL_COMPOSE_ARGS="" case $DATABASE in postgres) ADDITIONAL_COMPOSE_ARGS="-f docker-compose.postgres.yml" ;; hybrid) ADDITIONAL_COMPOSE_ARGS="-f docker-compose.hybrid.yml" ;; *) echo "Unknown DATABASE value specified in the .env file: '${DATABASE}'. Should be either 'postgres' or 'hybrid'." >&2 exit 1 esac echo $ADDITIONAL_COMPOSE_ARGS } function additionalComposeQueueArgs() { source .env ADDITIONAL_COMPOSE_QUEUE_ARGS="" case $TB_QUEUE_TYPE in kafka) ADDITIONAL_COMPOSE_QUEUE_ARGS="-f docker-compose.kafka.yml" ;; confluent) ADDITIONAL_COMPOSE_QUEUE_ARGS="-f docker-compose.confluent.yml" ;; aws-sqs) ADDITIONAL_COMPOSE_QUEUE_ARGS="-f docker-compose.aws-sqs.yml" ;; pubsub) ADDITIONAL_COMPOSE_QUEUE_ARGS="-f docker-compose.pubsub.yml" ;; rabbitmq) ADDITIONAL_COMPOSE_QUEUE_ARGS="-f docker-compose.rabbitmq.yml" ;; service-bus) ADDITIONAL_COMPOSE_QUEUE_ARGS="-f docker-compose.service-bus.yml" ;; *) echo "Unknown Queue service TB_QUEUE_TYPE value specified in the .env file: '${TB_QUEUE_TYPE}'. Should be either 'kafka' or 'confluent' or 'aws-sqs' or 'pubsub' or 'rabbitmq' or 'service-bus'." >&2 exit 1 esac echo $ADDITIONAL_COMPOSE_QUEUE_ARGS } function additionalComposeMonitoringArgs() { source .env if [ "$MONITORING_ENABLED" = true ] then ADDITIONAL_COMPOSE_MONITORING_ARGS="-f docker-compose.prometheus-grafana.yml" echo $ADDITIONAL_COMPOSE_MONITORING_ARGS else echo "" fi } function additionalComposeCacheArgs() { source .env CACHE_COMPOSE_ARGS="" CACHE="${CACHE:-redis}" case $CACHE in redis) CACHE_COMPOSE_ARGS="-f docker-compose.redis.yml" ;; redis-cluster) CACHE_COMPOSE_ARGS="-f docker-compose.redis-cluster.yml" ;; *) echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'redis' or 'redis-cluster'." >&2 exit 1 esac echo $CACHE_COMPOSE_ARGS } function additionalStartupServices() { source .env ADDITIONAL_STARTUP_SERVICES="" case $DATABASE in postgres) ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES postgres" ;; hybrid) ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES postgres cassandra" ;; *) echo "Unknown DATABASE value specified in the .env file: '${DATABASE}'. Should be either 'postgres' or 'hybrid'." >&2 exit 1 esac CACHE="${CACHE:-redis}" case $CACHE in redis) ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES redis" ;; redis-cluster) ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5" ;; *) echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'redis' or 'redis-cluster'." >&2 exit 1 esac echo $ADDITIONAL_STARTUP_SERVICES }