Merge pull request #227 from volodymyr-babak/master

Docker updates for new release
This commit is contained in:
Andrew Shvayka 2017-07-31 15:03:28 +03:00 committed by GitHub
commit c0a8849784
21 changed files with 132 additions and 215 deletions

View File

@ -233,7 +233,7 @@ spring:
jpa: jpa:
hibernate: hibernate:
ddl-auto: "validate" ddl-auto: "validate"
database-platform: "org.hibernate.dialect.HSQLDialect" database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.HSQLDialect}"
datasource: datasource:
driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}" 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}" url: "${SPRING_DATASOURCE_URL:jdbc:hsqldb:file:${SQL_DATA_FOLDER:/tmp}/thingsboardDb;sql.enforce_size=false}"
@ -250,7 +250,7 @@ spring:
# jpa: # jpa:
# hibernate: # hibernate:
# ddl-auto: "validate" # ddl-auto: "validate"
# database-platform: "org.hibernate.dialect.PostgreSQLDialect" # database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.PostgreSQLDialect}"
# datasource: # datasource:
# driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}" # driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
# url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}" # url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}"

View File

@ -1,15 +1,13 @@
# cassandra environment variables # cassandra environment variables
CASSANDRA_DATA_DIR=/home/docker/cassandra_volume CASSANDRA_DATA_DIR=/home/docker/cassandra_volume
CASSANDRA_URL=cassandra
# postgres environment variables # postgres environment variables
POSTGRES_DATA_DIR=/home/docker/postgres_volume POSTGRES_DATA_DIR=/home/docker/postgres_volume
POSTGRES_DB=thingsboard POSTGRES_DB=thingsboard
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres # hsqldb environment variables
POSTGRES_URL=postgres HSQLDB_DATA_DIR=/home/docker/hsqldb_volume
# environment variables for schema init and insert system and demo data # environment variables for schema init and insert system and demo data
CREATE_SCHEMA=true ADD_SCHEMA_AND_SYSTEM_DATA=false
ADD_SYSTEM_DATA=false
ADD_DEMO_DATA=false ADD_DEMO_DATA=false

View File

@ -14,14 +14,11 @@
# limitations under the License. # limitations under the License.
# #
FROM postgres:9.6 FROM openjdk:8-jre
ADD install-schema.sh /install-schema.sh ADD install.sh /install.sh
ADD thingsboard.deb /thingsboard.deb
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y nmap \ && apt-get install -y nmap \
&& chmod +x /install-schema.sh && chmod +x /install.sh
ADD schema.sql /schema.sql
ADD system-data.sql /system-data.sql
ADD demo-data.sql /demo-data.sql

View File

@ -0,0 +1,12 @@
VERSION=1.3.0
PROJECT=thingsboard
APP=cassandra-setup
build:
cp ../../application/target/thingsboard.deb .
docker build --pull -t ${PROJECT}/${APP}:${VERSION} -t ${PROJECT}/${APP}:latest .
rm thingsboard.deb
push: build
docker push ${PROJECT}/${APP}:${VERSION}
docker push ${PROJECT}/${APP}:latest

View File

@ -1,3 +1,4 @@
#!/bin/bash
# #
# Copyright © 2016-2017 The Thingsboard Authors # Copyright © 2016-2017 The Thingsboard Authors
# #
@ -14,15 +15,19 @@
# limitations under the License. # limitations under the License.
# #
FROM cassandra:3.9
ADD install-schema.sh /install-schema.sh dpkg -i /thingsboard.deb
RUN apt-get update \ until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open"
&& apt-get install -y nmap \ do
&& chmod +x /install-schema.sh echo "Wait for cassandra db to start..."
sleep 10
ADD schema.cql /schema.cql done
ADD demo-data.cql /demo-data.cql
ADD system-data.cql /system-data.cql
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

View File

@ -1,4 +1,4 @@
VERSION=1.2.4 VERSION=1.3.0
PROJECT=thingsboard PROJECT=thingsboard
APP=cassandra APP=cassandra

View File

@ -18,22 +18,19 @@ version: '2'
services: services:
tb: tb:
image: "thingsboard/application:1.2.4" image: "thingsboard/application:1.3.0"
ports: ports:
- "8080:8080" - "8080:8080"
- "1883:1883" - "1883:1883"
- "5683:5683/udp" - "5683:5683/udp"
env_file: env_file:
- tb.env - tb.env
entrypoint: /run-application.sh
tb-cassandra-schema:
image: "thingsboard/tb-cassandra-schema:1.2.4"
environment: environment:
- CREATE_SCHEMA=${CREATE_SCHEMA} - ADD_SCHEMA_AND_SYSTEM_DATA=${ADD_SCHEMA_AND_SYSTEM_DATA}
- ADD_SYSTEM_DATA=${ADD_SYSTEM_DATA}
- ADD_DEMO_DATA=${ADD_DEMO_DATA} - ADD_DEMO_DATA=${ADD_DEMO_DATA}
- CASSANDRA_URL=${CASSANDRA_URL} volumes:
entrypoint: /install-schema.sh - "${HSQLDB_DATA_DIR}:/usr/share/thingsboard/data/sql"
entrypoint: /run-application.sh
cassandra: cassandra:
image: "cassandra:3.9" image: "cassandra:3.9"
ports: ports:
@ -52,18 +49,5 @@ services:
- "5432" - "5432"
environment: environment:
- POSTGRES_DB=${POSTGRES_DB} - POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes: volumes:
- "${POSTGRES_DATA_DIR}:/var/lib/postgresql/data" - "${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

View File

@ -17,23 +17,25 @@
apiVersion: v1 apiVersion: v1
kind: Pod kind: Pod
metadata: metadata:
name: tb-cassandra-schema name: cassandra-setup
spec: spec:
containers: containers:
- name: tb-cassandra-schema - name: cassandra-setup
imagePullPolicy: Always imagePullPolicy: Always
image: thingsboard/tb-cassandra-schema:1.2.4 image: thingsboard/cassandra-setup:1.3.0
env: env:
- name: CREATE_SCHEMA
value: "true"
- name: ADD_SYSTEM_DATA
value: "true"
- name: ADD_DEMO_DATA - name: ADD_DEMO_DATA
value: "true" value: "true"
- name : CASSANDRA_URL - name : CASSANDRA_HOST
value: "cassandra-headless" value: "cassandra-headless"
- name : CASSANDRA_PORT
value: "9042"
- name : DATABASE_TYPE
value: "cassandra"
- name : CASSANDRA_URL
value: "cassandra-headless:9042"
command: command:
- sh - sh
- -c - -c
- /install-schema.sh - /install.sh
restartPolicy: Never restartPolicy: Never

View File

@ -54,7 +54,7 @@ spec:
topologyKey: "kubernetes.io/hostname" topologyKey: "kubernetes.io/hostname"
containers: containers:
- name: cassandra - name: cassandra
image: thingsboard/cassandra:1.2.4 image: thingsboard/cassandra:1.3.0
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 7000 - containerPort: 7000

View File

@ -51,6 +51,9 @@ data:
zookeeper.enabled: "true" zookeeper.enabled: "true"
zookeeper.url: "zk-headless" zookeeper.url: "zk-headless"
cassandra.url: "cassandra-headless:9042" cassandra.url: "cassandra-headless:9042"
cassandra.host: "cassandra-headless"
cassandra.port: "9042"
database.type: "cassandra"
--- ---
apiVersion: apps/v1beta1 apiVersion: apps/v1beta1
kind: StatefulSet kind: StatefulSet
@ -79,7 +82,7 @@ spec:
containers: containers:
- name: tb - name: tb
imagePullPolicy: Always imagePullPolicy: Always
image: thingsboard/application:1.2.4 image: thingsboard/application:1.3.0
ports: ports:
- containerPort: 8080 - containerPort: 8080
name: ui name: ui
@ -100,11 +103,26 @@ spec:
configMapKeyRef: configMapKeyRef:
name: tb-config name: tb-config
key: zookeeper.url key: zookeeper.url
- name : CASSANDRA_HOST
valueFrom:
configMapKeyRef:
name: tb-config
key: cassandra.host
- name : CASSANDRA_PORT
valueFrom:
configMapKeyRef:
name: tb-config
key: cassandra.port
- name : CASSANDRA_URL - name : CASSANDRA_URL
valueFrom: valueFrom:
configMapKeyRef: configMapKeyRef:
name: tb-config name: tb-config
key: cassandra.url key: cassandra.url
- name: DATABASE_TYPE
valueFrom:
configMapKeyRef:
name: tb-config
key: database.type
- name : RPC_HOST - name : RPC_HOST
valueFrom: valueFrom:
fieldRef: fieldRef:

View File

@ -87,7 +87,7 @@ spec:
containers: containers:
- name: zk - name: zk
imagePullPolicy: Always imagePullPolicy: Always
image: thingsboard/zk:1.2.4 image: thingsboard/zk:1.3.0
ports: ports:
- containerPort: 2181 - containerPort: 2181
name: client name: client

View File

@ -1,14 +0,0 @@
VERSION=1.2.4
PROJECT=thingsboard
APP=tb-cassandra-schema
build:
cp ../../dao/src/main/resources/cassandra/schema.cql .
cp ../../dao/src/main/resources/cassandra/demo-data.cql .
cp ../../dao/src/main/resources/cassandra/system-data.cql .
docker build --pull -t ${PROJECT}/${APP}:${VERSION} -t ${PROJECT}/${APP}:latest .
rm schema.cql demo-data.cql system-data.cql
push: build
docker push ${PROJECT}/${APP}:${VERSION}
docker push ${PROJECT}/${APP}:latest

View File

@ -1,53 +0,0 @@
#!/bin/bash
#
# Copyright © 2016-2017 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.
#
until nmap $CASSANDRA_URL -p 9042 | grep "9042/tcp open"
do
echo "Wait for $CASSANDRA_URL..."
sleep 10
done
if [ "$CREATE_SCHEMA" == "true" ]; then
echo "Creating 'Thingsboard' keyspace..."
cqlsh $CASSANDRA_URL -f /schema.cql
if [ "$?" -eq 0 ]; then
echo "'Thingsboard' keyspace was successfully created!"
else
echo "There were issues while creating 'Thingsboard' keyspace!"
fi
fi
if [ "$ADD_SYSTEM_DATA" == "true" ]; then
echo "Adding system data..."
cqlsh $CASSANDRA_URL -f /system-data.cql
if [ "$?" -eq 0 ]; then
echo "System data was successfully added!"
else
echo "There were issues while adding System data!"
fi
fi
if [ "$ADD_DEMO_DATA" == "true" ]; then
echo "Adding demo data..."
cqlsh $CASSANDRA_URL -f /demo-data.cql
if [ "$?" -eq 0 ]; then
echo "Demo data was successfully added!"
else
echo "There were issues while adding Demo data!"
fi
fi

View File

@ -1,14 +0,0 @@
VERSION=1.2.4
PROJECT=thingsboard
APP=tb-postgres-schema
build:
cp ../../dao/src/main/resources/postgres/schema.sql .
cp ../../dao/src/main/resources/postgres/demo-data.sql .
cp ../../dao/src/main/resources/postgres/system-data.sql .
docker build --pull -t ${PROJECT}/${APP}:${VERSION} -t ${PROJECT}/${APP}:latest .
rm schema.sql demo-data.sql system-data.sql
push: build
docker push ${PROJECT}/${APP}:${VERSION}
docker push ${PROJECT}/${APP}:latest

View File

@ -1,52 +0,0 @@
#!/bin/bash
#
# Copyright © 2016-2017 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.
#
until nmap $POSTGRES_URL -p 5432 | grep "5432/tcp open"
do
echo "Waiting for $POSTGRES_URL..."
sleep 10
done
if [ "$CREATE_SCHEMA" == "true" ]; then
echo "Creating 'Thingsboard' database schema..."
PGPASSWORD="$POSTGRES_PASSWORD" psql -h "$POSTGRES_URL" -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f /schema.sql
if [ "$?" -eq 0 ]; then
echo "'Thingsboard' database schema was successfully created!"
else
echo "There were issues while creating 'Thingsboard' database schema!"
fi
fi
if [ "$ADD_SYSTEM_DATA" == "true" ]; then
echo "Adding system data..."
PGPASSWORD="$POSTGRES_PASSWORD" psql -h "$POSTGRES_URL" -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f /system-data.sql
if [ "$?" -eq 0 ]; then
echo "System data was successfully added!"
else
echo "There were issues while adding System data!"
fi
fi
if [ "$ADD_DEMO_DATA" == "true" ]; then
echo "Adding demo data..."
PGPASSWORD="$POSTGRES_PASSWORD" psql -h "$POSTGRES_URL" -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f /demo-data.sql
if [ "$?" -eq 0 ]; then
echo "Demo data was successfully added!"
else
echo "There were issues while adding Demo data!"
fi
fi

View File

@ -1,9 +1,25 @@
#Thingsboard server configuration #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_ADDRESS=0.0.0.0
MQTT_BIND_PORT=1883 MQTT_BIND_PORT=1883
COAP_BIND_ADDRESS=0.0.0.0 COAP_BIND_ADDRESS=0.0.0.0
COAP_BIND_PORT=5683 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

View File

@ -19,4 +19,6 @@ FROM openjdk:8-jre
ADD run-application.sh /run-application.sh ADD run-application.sh /run-application.sh
ADD thingsboard.deb /thingsboard.deb 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

View File

@ -1,4 +1,4 @@
VERSION=1.2.4 VERSION=1.3.0
PROJECT=thingsboard PROJECT=thingsboard
APP=application APP=application

View File

@ -18,18 +18,34 @@
dpkg -i /thingsboard.deb dpkg -i /thingsboard.deb
reachable=0 if [ "$DATABASE_TYPE" == "cassandra" ]; then
while [ $reachable -eq 0 ]; until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open"
do do
echo "$TB_CASSANDRA_SCHEMA_URL container is still in progress. waiting until it completed..." echo "Wait for cassandra db to start..."
sleep 3 sleep 10
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 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 # Copying env variables into conf files
printenv | awk -F "=" '{print "export " $1 "='\''" $2 "'\''"}' >> /usr/share/thingsboard/conf/thingsboard.conf printenv | awk -F "=" '{print "export " $1 "='\''" $2 "'\''"}' >> /usr/share/thingsboard/conf/thingsboard.conf

View File

@ -1,4 +1,4 @@
VERSION=1.2.4 VERSION=1.3.0
PROJECT=thingsboard PROJECT=thingsboard
APP=zk APP=zk