Docker updates to new release features

This commit is contained in:
Volodymyr Babak 2017-07-27 20:37:00 +03:00
parent d1f9f25f29
commit be8f7062a4
12 changed files with 137 additions and 12 deletions

View File

@ -115,7 +115,9 @@ cassandra:
# Thingsboard keyspace name
keyspace_name: "${CASSANDRA_KEYSPACE_NAME:thingsboard}"
# Specify node list
url: "${CASSANDRA_URL:127.0.0.1:9042}"
host: "${CASSANDRA_HOST:127.0.0.1}"
# Specify node list
post: "${CASSANDRA_PORT:9042}"
# Enable/disable secure connection
ssl: "${CASSANDRA_USE_SSL:false}"
# Enable/disable JMX

View File

@ -44,7 +44,7 @@ public abstract class AbstractCassandraCluster {
@Value("${cassandra.cluster_name}")
private String clusterName;
@Value("${cassandra.url}")
@Value("${cassandra.host}:${cassandra.port}")
private String url;
@Value("${cassandra.compression}")
private String compression;

View File

@ -2,7 +2,9 @@ cassandra.cluster_name=Thingsboard Cluster
cassandra.keyspace_name=thingsboard
cassandra.url=127.0.0.1:9142
cassandra.host=127.0.0.1
cassandra.port=9142
cassandra.ssl=false

View File

@ -0,0 +1,24 @@
#
# 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.
#
FROM openjdk:8-jre
ADD install.sh /install.sh
ADD thingsboard.deb /thingsboard.deb
RUN apt-get update \
&& apt-get install -y nmap \
&& chmod +x /install.sh

View File

@ -0,0 +1,12 @@
VERSION=1.2.4
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

@ -0,0 +1,33 @@
#!/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.
#
dpkg -i /thingsboard.deb
until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open"
do
echo "Wait for cassandra db to start..."
sleep 10
done
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

@ -7,4 +7,4 @@ build:
push: build
docker push ${PROJECT}/${APP}:${VERSION}
docker push ${PROJECT}/${APP}:latest
docker push ${PROJECT}/${APP}:latest

View File

@ -0,0 +1,39 @@
#
# 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.
#
apiVersion: v1
kind: Pod
metadata:
name: cassandra-setup
spec:
containers:
- name: cassandra-setup
imagePullPolicy: Always
image: thingsboard/cassandra-setup:1.2.4
env:
- name: ADD_DEMO_DATA
value: "true"
- name : CASSANDRA_HOST
value: "cassandra-headless"
- name : CASSANDRA_PORT
value: "9042"
- name : DATABASE_TYPE
value: "cassandra"
command:
- sh
- -c
- /install.sh
restartPolicy: Never

View File

@ -50,7 +50,9 @@ metadata:
data:
zookeeper.enabled: "true"
zookeeper.url: "zk-headless"
cassandra.url: "cassandra-headless:9042"
cassandra.host: "cassandra-headless"
cassandra.port: "9042"
database.type: "cassandra"
---
apiVersion: apps/v1beta1
kind: StatefulSet
@ -100,11 +102,21 @@ spec:
configMapKeyRef:
name: tb-config
key: zookeeper.url
- name : CASSANDRA_URL
- name : CASSANDRA_HOST
valueFrom:
configMapKeyRef:
name: tb-config
key: cassandra.url
key: cassandra.host
- name : CASSANDRA_PORT
valueFrom:
configMapKeyRef:
name: tb-config
key: cassandra.port
- name: DATABASE_TYPE
valueFrom:
configMapKeyRef:
name: tb-config
key: database.type
- name : RPC_HOST
valueFrom:
fieldRef:

View File

@ -8,10 +8,11 @@ COAP_BIND_PORT=5683
ZOOKEEPER_URL=zk:2181
# type of database to use: sql[DEFAULT] or cassandra
DATABASE_TYPE=sql
DATABASE_TYPE=cassandra
# cassandra db config
CASSANDRA_URL=cassandra:9042
CASSANDRA_HOST=cassandra
CASSANDRA_PORT=9042
# postgres db config
# SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect

View File

@ -9,4 +9,4 @@ build:
push: build
docker push ${PROJECT}/${APP}:${VERSION}
docker push ${PROJECT}/${APP}:latest
docker push ${PROJECT}/${APP}:latest

View File

@ -19,7 +19,7 @@
dpkg -i /thingsboard.deb
if [ "$DATABASE_TYPE" == "cassandra" ]; then
until nmap cassandra -p 9042 | grep "9042/tcp open"
until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open"
do
echo "Wait for cassandra db to start..."
sleep 10
@ -39,7 +39,7 @@ fi
if [ "$ADD_SCHEMA_AND_SYSTEM_DATA" == "true" ]; then
echo "Creating 'Thingsboard' schema and system data..."
if [ "$ADD_DEMO_DATA" == "true" ]; then
echo "Adding demo data..."
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