thingsboard-aplcache
Changes
docker/.env 10(+4 -6)
docker/cassandra/Makefile 4(+2 -2)
docker/cassandra-setup/Dockerfile 12(+4 -8)
docker/cassandra-setup/install.sh 22(+14 -8)
docker/cassandra-setup/Makefile 10(+4 -6)
docker/docker-compose.yml 26(+5 -21)
docker/k8s/cassandra.yaml 2(+1 -1)
docker/k8s/cassandra-setup.yaml 24(+13 -11)
docker/k8s/common.yaml 0(+0 -0)
docker/k8s/tb.yaml 20(+19 -1)
docker/k8s/zookeeper.yaml 2(+1 -1)
docker/tb.env 26(+21 -5)
docker/tb/Dockerfile 4(+3 -1)
docker/tb/Makefile 4(+2 -2)
docker/tb/run-application.sh 40(+28 -12)
docker/zookeeper/Makefile 2(+1 -1)
Details
diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index 7e2a773..e57018d 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -233,7 +233,7 @@ spring:
jpa:
hibernate:
ddl-auto: "validate"
- database-platform: "org.hibernate.dialect.HSQLDialect"
+ database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.HSQLDialect}"
datasource:
driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}"
url: "${SPRING_DATASOURCE_URL:jdbc:hsqldb:file:${SQL_DATA_FOLDER:/tmp}/thingsboardDb;sql.enforce_size=false}"
@@ -250,7 +250,7 @@ spring:
# jpa:
# hibernate:
# ddl-auto: "validate"
-# database-platform: "org.hibernate.dialect.PostgreSQLDialect"
+# database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.PostgreSQLDialect}"
# datasource:
# driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
# url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}"
docker/.env 10(+4 -6)
diff --git a/docker/.env b/docker/.env
index ff77f41..e330632 100644
--- a/docker/.env
+++ b/docker/.env
@@ -1,15 +1,13 @@
# cassandra environment variables
CASSANDRA_DATA_DIR=/home/docker/cassandra_volume
-CASSANDRA_URL=cassandra
# postgres environment variables
POSTGRES_DATA_DIR=/home/docker/postgres_volume
POSTGRES_DB=thingsboard
-POSTGRES_USER=postgres
-POSTGRES_PASSWORD=postgres
-POSTGRES_URL=postgres
+
+# hsqldb environment variables
+HSQLDB_DATA_DIR=/home/docker/hsqldb_volume
# environment variables for schema init and insert system and demo data
-CREATE_SCHEMA=true
-ADD_SYSTEM_DATA=false
+ADD_SCHEMA_AND_SYSTEM_DATA=false
ADD_DEMO_DATA=false
\ No newline at end of file
docker/cassandra/Makefile 4(+2 -2)
diff --git a/docker/cassandra/Makefile b/docker/cassandra/Makefile
index f277e9e..2cc2139 100644
--- a/docker/cassandra/Makefile
+++ b/docker/cassandra/Makefile
@@ -1,4 +1,4 @@
-VERSION=1.2.4
+VERSION=1.3.0
PROJECT=thingsboard
APP=cassandra
@@ -7,4 +7,4 @@ build:
push: build
docker push ${PROJECT}/${APP}:${VERSION}
- docker push ${PROJECT}/${APP}:latest
+ docker push ${PROJECT}/${APP}:latest
docker/docker-compose.yml 26(+5 -21)
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 988a2db..d2673dc 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -18,22 +18,19 @@ version: '2'
services:
tb:
- image: "thingsboard/application:1.2.4"
+ image: "thingsboard/application:1.3.0"
ports:
- "8080:8080"
- "1883:1883"
- "5683:5683/udp"
env_file:
- tb.env
- entrypoint: /run-application.sh
- tb-cassandra-schema:
- image: "thingsboard/tb-cassandra-schema:1.2.4"
environment:
- - CREATE_SCHEMA=${CREATE_SCHEMA}
- - ADD_SYSTEM_DATA=${ADD_SYSTEM_DATA}
+ - ADD_SCHEMA_AND_SYSTEM_DATA=${ADD_SCHEMA_AND_SYSTEM_DATA}
- ADD_DEMO_DATA=${ADD_DEMO_DATA}
- - CASSANDRA_URL=${CASSANDRA_URL}
- entrypoint: /install-schema.sh
+ volumes:
+ - "${HSQLDB_DATA_DIR}:/usr/share/thingsboard/data/sql"
+ entrypoint: /run-application.sh
cassandra:
image: "cassandra:3.9"
ports:
@@ -52,18 +49,5 @@ services:
- "5432"
environment:
- POSTGRES_DB=${POSTGRES_DB}
- - POSTGRES_USER=${POSTGRES_USER}
- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- "${POSTGRES_DATA_DIR}:/var/lib/postgresql/data"
- tb-postgres-schema:
- image: "thingsboard/tb-postgres-schema:1.2.4"
- environment:
- - POSTGRES_URL=${POSTGRES_URL}
- - POSTGRES_DB=${POSTGRES_DB}
- - POSTGRES_USER=${POSTGRES_USER}
- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- - CREATE_SCHEMA=${CREATE_SCHEMA}
- - ADD_SYSTEM_DATA=${ADD_SYSTEM_DATA}
- - ADD_DEMO_DATA=${ADD_DEMO_DATA}
- entrypoint: /install-schema.sh
\ No newline at end of file
docker/tb.env 26(+21 -5)
diff --git a/docker/tb.env b/docker/tb.env
index 7947c23..1a512fd 100644
--- a/docker/tb.env
+++ b/docker/tb.env
@@ -1,9 +1,25 @@
#Thingsboard server configuration
-
-TB_CASSANDRA_SCHEMA_URL=tb-cassandra-schema
-CASSANDRA_URL=cassandra:9042
-ZOOKEEPER_URL=zk:2181
MQTT_BIND_ADDRESS=0.0.0.0
MQTT_BIND_PORT=1883
COAP_BIND_ADDRESS=0.0.0.0
-COAP_BIND_PORT=5683
\ No newline at end of file
+COAP_BIND_PORT=5683
+
+# zk config
+ZOOKEEPER_URL=zk:2181
+
+# type of database to use: sql[DEFAULT] or cassandra
+DATABASE_TYPE=sql
+
+# cassandra db config
+CASSANDRA_URL=cassandra:9042
+CASSANDRA_HOST=cassandra
+CASSANDRA_PORT=9042
+
+# postgres db config
+POSTGRES_HOST=cassandra
+POSTGRES_PORT=9042
+# SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect
+# SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver
+# SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/thingsboard
+# SPRING_DATASOURCE_USERNAME=postgres
+# SPRING_DATASOURCE_PASSWORD=postgres
docker/tb/Dockerfile 4(+3 -1)
diff --git a/docker/tb/Dockerfile b/docker/tb/Dockerfile
index b2a3da6..993e7f3 100644
--- a/docker/tb/Dockerfile
+++ b/docker/tb/Dockerfile
@@ -19,4 +19,6 @@ FROM openjdk:8-jre
ADD run-application.sh /run-application.sh
ADD thingsboard.deb /thingsboard.deb
-RUN chmod +x /run-application.sh
+RUN apt-get update \
+ && apt-get install -y nmap \
+ && chmod +x /run-application.sh
docker/tb/Makefile 4(+2 -2)
diff --git a/docker/tb/Makefile b/docker/tb/Makefile
index b12e5a6..ce460c0 100644
--- a/docker/tb/Makefile
+++ b/docker/tb/Makefile
@@ -1,4 +1,4 @@
-VERSION=1.2.4
+VERSION=1.3.0
PROJECT=thingsboard
APP=application
@@ -9,4 +9,4 @@ build:
push: build
docker push ${PROJECT}/${APP}:${VERSION}
- docker push ${PROJECT}/${APP}:latest
+ docker push ${PROJECT}/${APP}:latest
docker/tb/run-application.sh 40(+28 -12)
diff --git a/docker/tb/run-application.sh b/docker/tb/run-application.sh
index 4824133..55a2988 100755
--- a/docker/tb/run-application.sh
+++ b/docker/tb/run-application.sh
@@ -18,18 +18,34 @@
dpkg -i /thingsboard.deb
-reachable=0
-while [ $reachable -eq 0 ];
-do
- echo "$TB_CASSANDRA_SCHEMA_URL container is still in progress. waiting until it completed..."
- sleep 3
- ping -q -c 1 $TB_CASSANDRA_SCHEMA_URL > /dev/null 2>&1
- if [ "$?" -ne 0 ];
- then
- echo "$TB_CASSANDRA_SCHEMA_URL container completed!"
- reachable=1
- fi
-done
+if [ "$DATABASE_TYPE" == "cassandra" ]; then
+ until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open"
+ do
+ echo "Wait for cassandra db to start..."
+ sleep 10
+ done
+fi
+
+if [ "$DATABASE_TYPE" == "sql" ]; then
+ if [ "$SPRING_DRIVER_CLASS_NAME" == "org.postgresql.Driver" ]; then
+ until nmap $POSTGRES_HOST -p $POSTGRES_PORT | grep "$POSTGRES_PORT/tcp open"
+ do
+ echo "Waiting for postgres db to start..."
+ sleep 10
+ done
+ fi
+fi
+
+if [ "$ADD_SCHEMA_AND_SYSTEM_DATA" == "true" ]; then
+ echo "Creating 'Thingsboard' schema and system data..."
+ if [ "$ADD_DEMO_DATA" == "true" ]; then
+ echo "plus demo data..."
+ /usr/share/thingsboard/bin/install/install.sh --loadDemo
+ elif [ "$ADD_DEMO_DATA" == "false" ]; then
+ /usr/share/thingsboard/bin/install/install.sh
+ fi
+fi
+
# Copying env variables into conf files
printenv | awk -F "=" '{print "export " $1 "='\''" $2 "'\''"}' >> /usr/share/thingsboard/conf/thingsboard.conf
docker/zookeeper/Makefile 2(+1 -1)
diff --git a/docker/zookeeper/Makefile b/docker/zookeeper/Makefile
index 9ac2703..f380589 100644
--- a/docker/zookeeper/Makefile
+++ b/docker/zookeeper/Makefile
@@ -1,4 +1,4 @@
-VERSION=1.2.4
+VERSION=1.3.0
PROJECT=thingsboard
APP=zk