Commit c0a8849784f82372c23ef7302dbbc1fb7bce7c9d
Committed by
GitHub
Merge pull request #227 from volodymyr-babak/master
Docker updates for new release
Showing
20 changed files
with
124 additions
and
207 deletions
... | ... | @@ -233,7 +233,7 @@ spring: |
233 | 233 | jpa: |
234 | 234 | hibernate: |
235 | 235 | ddl-auto: "validate" |
236 | - database-platform: "org.hibernate.dialect.HSQLDialect" | |
236 | + database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.HSQLDialect}" | |
237 | 237 | datasource: |
238 | 238 | driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}" |
239 | 239 | url: "${SPRING_DATASOURCE_URL:jdbc:hsqldb:file:${SQL_DATA_FOLDER:/tmp}/thingsboardDb;sql.enforce_size=false}" |
... | ... | @@ -250,7 +250,7 @@ spring: |
250 | 250 | # jpa: |
251 | 251 | # hibernate: |
252 | 252 | # ddl-auto: "validate" |
253 | -# database-platform: "org.hibernate.dialect.PostgreSQLDialect" | |
253 | +# database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.PostgreSQLDialect}" | |
254 | 254 | # datasource: |
255 | 255 | # driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}" |
256 | 256 | # url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}" | ... | ... |
1 | 1 | # cassandra environment variables |
2 | 2 | CASSANDRA_DATA_DIR=/home/docker/cassandra_volume |
3 | -CASSANDRA_URL=cassandra | |
4 | 3 | |
5 | 4 | # postgres environment variables |
6 | 5 | POSTGRES_DATA_DIR=/home/docker/postgres_volume |
7 | 6 | POSTGRES_DB=thingsboard |
8 | -POSTGRES_USER=postgres | |
9 | -POSTGRES_PASSWORD=postgres | |
10 | -POSTGRES_URL=postgres | |
7 | + | |
8 | +# hsqldb environment variables | |
9 | +HSQLDB_DATA_DIR=/home/docker/hsqldb_volume | |
11 | 10 | |
12 | 11 | # environment variables for schema init and insert system and demo data |
13 | -CREATE_SCHEMA=true | |
14 | -ADD_SYSTEM_DATA=false | |
12 | +ADD_SCHEMA_AND_SYSTEM_DATA=false | |
15 | 13 | ADD_DEMO_DATA=false |
\ No newline at end of file | ... | ... |
docker/cassandra-setup/Dockerfile
renamed from
docker/tb-cassandra-schema/Dockerfile
... | ... | @@ -14,15 +14,11 @@ |
14 | 14 | # limitations under the License. |
15 | 15 | # |
16 | 16 | |
17 | -FROM cassandra:3.9 | |
17 | +FROM openjdk:8-jre | |
18 | 18 | |
19 | -ADD install-schema.sh /install-schema.sh | |
19 | +ADD install.sh /install.sh | |
20 | +ADD thingsboard.deb /thingsboard.deb | |
20 | 21 | |
21 | 22 | RUN apt-get update \ |
22 | 23 | && apt-get install -y nmap \ |
23 | - && chmod +x /install-schema.sh | |
24 | - | |
25 | -ADD schema.cql /schema.cql | |
26 | -ADD demo-data.cql /demo-data.cql | |
27 | -ADD system-data.cql /system-data.cql | |
28 | - | |
24 | + && chmod +x /install.sh | ... | ... |
docker/cassandra-setup/Makefile
renamed from
docker/tb-cassandra-schema/Makefile
1 | -VERSION=1.2.4 | |
1 | +VERSION=1.3.0 | |
2 | 2 | PROJECT=thingsboard |
3 | -APP=tb-cassandra-schema | |
3 | +APP=cassandra-setup | |
4 | 4 | |
5 | 5 | build: |
6 | - cp ../../dao/src/main/resources/cassandra/schema.cql . | |
7 | - cp ../../dao/src/main/resources/cassandra/demo-data.cql . | |
8 | - cp ../../dao/src/main/resources/cassandra/system-data.cql . | |
6 | + cp ../../application/target/thingsboard.deb . | |
9 | 7 | docker build --pull -t ${PROJECT}/${APP}:${VERSION} -t ${PROJECT}/${APP}:latest . |
10 | - rm schema.cql demo-data.cql system-data.cql | |
8 | + rm thingsboard.deb | |
11 | 9 | |
12 | 10 | push: build |
13 | 11 | docker push ${PROJECT}/${APP}:${VERSION} | ... | ... |
docker/cassandra-setup/install.sh
renamed from
docker/tb-postgres-schema/Dockerfile
100644 → 100755
1 | +#!/bin/bash | |
1 | 2 | # |
2 | 3 | # Copyright © 2016-2017 The Thingsboard Authors |
3 | 4 | # |
... | ... | @@ -14,14 +15,19 @@ |
14 | 15 | # limitations under the License. |
15 | 16 | # |
16 | 17 | |
17 | -FROM postgres:9.6 | |
18 | 18 | |
19 | -ADD install-schema.sh /install-schema.sh | |
19 | +dpkg -i /thingsboard.deb | |
20 | 20 | |
21 | -RUN apt-get update \ | |
22 | - && apt-get install -y nmap \ | |
23 | - && chmod +x /install-schema.sh | |
21 | +until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open" | |
22 | +do | |
23 | + echo "Wait for cassandra db to start..." | |
24 | + sleep 10 | |
25 | +done | |
24 | 26 | |
25 | -ADD schema.sql /schema.sql | |
26 | -ADD system-data.sql /system-data.sql | |
27 | -ADD demo-data.sql /demo-data.sql | |
\ No newline at end of file | ||
27 | +echo "Creating 'Thingsboard' schema and system data..." | |
28 | +if [ "$ADD_DEMO_DATA" == "true" ]; then | |
29 | + echo "plus demo data..." | |
30 | + /usr/share/thingsboard/bin/install/install.sh --loadDemo | |
31 | +elif [ "$ADD_DEMO_DATA" == "false" ]; then | |
32 | + /usr/share/thingsboard/bin/install/install.sh | |
33 | +fi | ... | ... |
... | ... | @@ -18,22 +18,19 @@ version: '2' |
18 | 18 | |
19 | 19 | services: |
20 | 20 | tb: |
21 | - image: "thingsboard/application:1.2.4" | |
21 | + image: "thingsboard/application:1.3.0" | |
22 | 22 | ports: |
23 | 23 | - "8080:8080" |
24 | 24 | - "1883:1883" |
25 | 25 | - "5683:5683/udp" |
26 | 26 | env_file: |
27 | 27 | - tb.env |
28 | - entrypoint: /run-application.sh | |
29 | - tb-cassandra-schema: | |
30 | - image: "thingsboard/tb-cassandra-schema:1.2.4" | |
31 | 28 | environment: |
32 | - - CREATE_SCHEMA=${CREATE_SCHEMA} | |
33 | - - ADD_SYSTEM_DATA=${ADD_SYSTEM_DATA} | |
29 | + - ADD_SCHEMA_AND_SYSTEM_DATA=${ADD_SCHEMA_AND_SYSTEM_DATA} | |
34 | 30 | - ADD_DEMO_DATA=${ADD_DEMO_DATA} |
35 | - - CASSANDRA_URL=${CASSANDRA_URL} | |
36 | - entrypoint: /install-schema.sh | |
31 | + volumes: | |
32 | + - "${HSQLDB_DATA_DIR}:/usr/share/thingsboard/data/sql" | |
33 | + entrypoint: /run-application.sh | |
37 | 34 | cassandra: |
38 | 35 | image: "cassandra:3.9" |
39 | 36 | ports: |
... | ... | @@ -52,18 +49,5 @@ services: |
52 | 49 | - "5432" |
53 | 50 | environment: |
54 | 51 | - POSTGRES_DB=${POSTGRES_DB} |
55 | - - POSTGRES_USER=${POSTGRES_USER} | |
56 | - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} | |
57 | 52 | volumes: |
58 | 53 | - "${POSTGRES_DATA_DIR}:/var/lib/postgresql/data" |
59 | - tb-postgres-schema: | |
60 | - image: "thingsboard/tb-postgres-schema:1.2.4" | |
61 | - environment: | |
62 | - - POSTGRES_URL=${POSTGRES_URL} | |
63 | - - POSTGRES_DB=${POSTGRES_DB} | |
64 | - - POSTGRES_USER=${POSTGRES_USER} | |
65 | - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} | |
66 | - - CREATE_SCHEMA=${CREATE_SCHEMA} | |
67 | - - ADD_SYSTEM_DATA=${ADD_SYSTEM_DATA} | |
68 | - - ADD_DEMO_DATA=${ADD_DEMO_DATA} | |
69 | - entrypoint: /install-schema.sh | |
\ No newline at end of file | ... | ... |
docker/k8s/cassandra-setup.yaml
renamed from
docker/tb-cassandra-schema/tb-cassandra-schema.yaml
... | ... | @@ -17,23 +17,25 @@ |
17 | 17 | apiVersion: v1 |
18 | 18 | kind: Pod |
19 | 19 | metadata: |
20 | - name: tb-cassandra-schema | |
20 | + name: cassandra-setup | |
21 | 21 | spec: |
22 | 22 | containers: |
23 | - - name: tb-cassandra-schema | |
23 | + - name: cassandra-setup | |
24 | 24 | imagePullPolicy: Always |
25 | - image: thingsboard/tb-cassandra-schema:1.2.4 | |
25 | + image: thingsboard/cassandra-setup:1.3.0 | |
26 | 26 | env: |
27 | - - name: CREATE_SCHEMA | |
27 | + - name: ADD_DEMO_DATA | |
28 | 28 | value: "true" |
29 | - - name: ADD_SYSTEM_DATA | |
30 | - value: "true" | |
31 | - - name : ADD_DEMO_DATA | |
32 | - value: "true" | |
33 | - - name : CASSANDRA_URL | |
29 | + - name : CASSANDRA_HOST | |
34 | 30 | value: "cassandra-headless" |
31 | + - name : CASSANDRA_PORT | |
32 | + value: "9042" | |
33 | + - name : DATABASE_TYPE | |
34 | + value: "cassandra" | |
35 | + - name : CASSANDRA_URL | |
36 | + value: "cassandra-headless:9042" | |
35 | 37 | command: |
36 | 38 | - sh |
37 | 39 | - -c |
38 | - - /install-schema.sh | |
39 | - restartPolicy: Never | |
\ No newline at end of file | ||
40 | + - /install.sh | |
41 | + restartPolicy: Never | ... | ... |
docker/k8s/cassandra.yaml
renamed from
docker/cassandra/cassandra.yaml
docker/k8s/common.yaml
renamed from
docker/common/common.yaml
docker/k8s/tb.yaml
renamed from
docker/tb/tb.yaml
... | ... | @@ -51,6 +51,9 @@ data: |
51 | 51 | zookeeper.enabled: "true" |
52 | 52 | zookeeper.url: "zk-headless" |
53 | 53 | cassandra.url: "cassandra-headless:9042" |
54 | + cassandra.host: "cassandra-headless" | |
55 | + cassandra.port: "9042" | |
56 | + database.type: "cassandra" | |
54 | 57 | --- |
55 | 58 | apiVersion: apps/v1beta1 |
56 | 59 | kind: StatefulSet |
... | ... | @@ -79,7 +82,7 @@ spec: |
79 | 82 | containers: |
80 | 83 | - name: tb |
81 | 84 | imagePullPolicy: Always |
82 | - image: thingsboard/application:1.2.4 | |
85 | + image: thingsboard/application:1.3.0 | |
83 | 86 | ports: |
84 | 87 | - containerPort: 8080 |
85 | 88 | name: ui |
... | ... | @@ -100,11 +103,26 @@ spec: |
100 | 103 | configMapKeyRef: |
101 | 104 | name: tb-config |
102 | 105 | key: zookeeper.url |
106 | + - name : CASSANDRA_HOST | |
107 | + valueFrom: | |
108 | + configMapKeyRef: | |
109 | + name: tb-config | |
110 | + key: cassandra.host | |
111 | + - name : CASSANDRA_PORT | |
112 | + valueFrom: | |
113 | + configMapKeyRef: | |
114 | + name: tb-config | |
115 | + key: cassandra.port | |
103 | 116 | - name : CASSANDRA_URL |
104 | 117 | valueFrom: |
105 | 118 | configMapKeyRef: |
106 | 119 | name: tb-config |
107 | 120 | key: cassandra.url |
121 | + - name: DATABASE_TYPE | |
122 | + valueFrom: | |
123 | + configMapKeyRef: | |
124 | + name: tb-config | |
125 | + key: database.type | |
108 | 126 | - name : RPC_HOST |
109 | 127 | valueFrom: |
110 | 128 | fieldRef: | ... | ... |
docker/k8s/zookeeper.yaml
renamed from
docker/zookeeper/zookeeper.yaml
docker/tb-cassandra-schema/install-schema.sh
deleted
100644 → 0
1 | -#!/bin/bash | |
2 | -# | |
3 | -# Copyright © 2016-2017 The Thingsboard Authors | |
4 | -# | |
5 | -# Licensed under the Apache License, Version 2.0 (the "License"); | |
6 | -# you may not use this file except in compliance with the License. | |
7 | -# You may obtain a copy of the License at | |
8 | -# | |
9 | -# http://www.apache.org/licenses/LICENSE-2.0 | |
10 | -# | |
11 | -# Unless required by applicable law or agreed to in writing, software | |
12 | -# distributed under the License is distributed on an "AS IS" BASIS, | |
13 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | -# See the License for the specific language governing permissions and | |
15 | -# limitations under the License. | |
16 | -# | |
17 | - | |
18 | - | |
19 | -until nmap $CASSANDRA_URL -p 9042 | grep "9042/tcp open" | |
20 | -do | |
21 | - echo "Wait for $CASSANDRA_URL..." | |
22 | - sleep 10 | |
23 | -done | |
24 | - | |
25 | -if [ "$CREATE_SCHEMA" == "true" ]; then | |
26 | - echo "Creating 'Thingsboard' keyspace..." | |
27 | - cqlsh $CASSANDRA_URL -f /schema.cql | |
28 | - if [ "$?" -eq 0 ]; then | |
29 | - echo "'Thingsboard' keyspace was successfully created!" | |
30 | - else | |
31 | - echo "There were issues while creating 'Thingsboard' keyspace!" | |
32 | - fi | |
33 | -fi | |
34 | - | |
35 | -if [ "$ADD_SYSTEM_DATA" == "true" ]; then | |
36 | - echo "Adding system data..." | |
37 | - cqlsh $CASSANDRA_URL -f /system-data.cql | |
38 | - if [ "$?" -eq 0 ]; then | |
39 | - echo "System data was successfully added!" | |
40 | - else | |
41 | - echo "There were issues while adding System data!" | |
42 | - fi | |
43 | -fi | |
44 | - | |
45 | -if [ "$ADD_DEMO_DATA" == "true" ]; then | |
46 | - echo "Adding demo data..." | |
47 | - cqlsh $CASSANDRA_URL -f /demo-data.cql | |
48 | - if [ "$?" -eq 0 ]; then | |
49 | - echo "Demo data was successfully added!" | |
50 | - else | |
51 | - echo "There were issues while adding Demo data!" | |
52 | - fi | |
53 | -fi |
docker/tb-postgres-schema/Makefile
deleted
100644 → 0
1 | -VERSION=1.2.4 | |
2 | -PROJECT=thingsboard | |
3 | -APP=tb-postgres-schema | |
4 | - | |
5 | -build: | |
6 | - cp ../../dao/src/main/resources/postgres/schema.sql . | |
7 | - cp ../../dao/src/main/resources/postgres/demo-data.sql . | |
8 | - cp ../../dao/src/main/resources/postgres/system-data.sql . | |
9 | - docker build --pull -t ${PROJECT}/${APP}:${VERSION} -t ${PROJECT}/${APP}:latest . | |
10 | - rm schema.sql demo-data.sql system-data.sql | |
11 | - | |
12 | -push: build | |
13 | - docker push ${PROJECT}/${APP}:${VERSION} | |
14 | - docker push ${PROJECT}/${APP}:latest |
docker/tb-postgres-schema/install-schema.sh
deleted
100644 → 0
1 | -#!/bin/bash | |
2 | -# | |
3 | -# Copyright © 2016-2017 The Thingsboard Authors | |
4 | -# | |
5 | -# Licensed under the Apache License, Version 2.0 (the "License"); | |
6 | -# you may not use this file except in compliance with the License. | |
7 | -# You may obtain a copy of the License at | |
8 | -# | |
9 | -# http://www.apache.org/licenses/LICENSE-2.0 | |
10 | -# | |
11 | -# Unless required by applicable law or agreed to in writing, software | |
12 | -# distributed under the License is distributed on an "AS IS" BASIS, | |
13 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | -# See the License for the specific language governing permissions and | |
15 | -# limitations under the License. | |
16 | -# | |
17 | - | |
18 | -until nmap $POSTGRES_URL -p 5432 | grep "5432/tcp open" | |
19 | -do | |
20 | - echo "Waiting for $POSTGRES_URL..." | |
21 | - sleep 10 | |
22 | -done | |
23 | - | |
24 | -if [ "$CREATE_SCHEMA" == "true" ]; then | |
25 | - echo "Creating 'Thingsboard' database schema..." | |
26 | - PGPASSWORD="$POSTGRES_PASSWORD" psql -h "$POSTGRES_URL" -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f /schema.sql | |
27 | - if [ "$?" -eq 0 ]; then | |
28 | - echo "'Thingsboard' database schema was successfully created!" | |
29 | - else | |
30 | - echo "There were issues while creating 'Thingsboard' database schema!" | |
31 | - fi | |
32 | -fi | |
33 | - | |
34 | -if [ "$ADD_SYSTEM_DATA" == "true" ]; then | |
35 | - echo "Adding system data..." | |
36 | - PGPASSWORD="$POSTGRES_PASSWORD" psql -h "$POSTGRES_URL" -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f /system-data.sql | |
37 | - if [ "$?" -eq 0 ]; then | |
38 | - echo "System data was successfully added!" | |
39 | - else | |
40 | - echo "There were issues while adding System data!" | |
41 | - fi | |
42 | -fi | |
43 | - | |
44 | -if [ "$ADD_DEMO_DATA" == "true" ]; then | |
45 | - echo "Adding demo data..." | |
46 | - PGPASSWORD="$POSTGRES_PASSWORD" psql -h "$POSTGRES_URL" -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f /demo-data.sql | |
47 | - if [ "$?" -eq 0 ]; then | |
48 | - echo "Demo data was successfully added!" | |
49 | - else | |
50 | - echo "There were issues while adding Demo data!" | |
51 | - fi | |
52 | -fi |
1 | 1 | #Thingsboard server configuration |
2 | - | |
3 | -TB_CASSANDRA_SCHEMA_URL=tb-cassandra-schema | |
4 | -CASSANDRA_URL=cassandra:9042 | |
5 | -ZOOKEEPER_URL=zk:2181 | |
6 | 2 | MQTT_BIND_ADDRESS=0.0.0.0 |
7 | 3 | MQTT_BIND_PORT=1883 |
8 | 4 | COAP_BIND_ADDRESS=0.0.0.0 |
9 | -COAP_BIND_PORT=5683 | |
\ No newline at end of file | ||
5 | +COAP_BIND_PORT=5683 | |
6 | + | |
7 | +# zk config | |
8 | +ZOOKEEPER_URL=zk:2181 | |
9 | + | |
10 | +# type of database to use: sql[DEFAULT] or cassandra | |
11 | +DATABASE_TYPE=sql | |
12 | + | |
13 | +# cassandra db config | |
14 | +CASSANDRA_URL=cassandra:9042 | |
15 | +CASSANDRA_HOST=cassandra | |
16 | +CASSANDRA_PORT=9042 | |
17 | + | |
18 | +# postgres db config | |
19 | +POSTGRES_HOST=cassandra | |
20 | +POSTGRES_PORT=9042 | |
21 | +# SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect | |
22 | +# SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver | |
23 | +# SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/thingsboard | |
24 | +# SPRING_DATASOURCE_USERNAME=postgres | |
25 | +# SPRING_DATASOURCE_PASSWORD=postgres | ... | ... |
... | ... | @@ -18,18 +18,34 @@ |
18 | 18 | |
19 | 19 | dpkg -i /thingsboard.deb |
20 | 20 | |
21 | -reachable=0 | |
22 | -while [ $reachable -eq 0 ]; | |
23 | -do | |
24 | - echo "$TB_CASSANDRA_SCHEMA_URL container is still in progress. waiting until it completed..." | |
25 | - sleep 3 | |
26 | - ping -q -c 1 $TB_CASSANDRA_SCHEMA_URL > /dev/null 2>&1 | |
27 | - if [ "$?" -ne 0 ]; | |
28 | - then | |
29 | - echo "$TB_CASSANDRA_SCHEMA_URL container completed!" | |
30 | - reachable=1 | |
31 | - fi | |
32 | -done | |
21 | +if [ "$DATABASE_TYPE" == "cassandra" ]; then | |
22 | + until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open" | |
23 | + do | |
24 | + echo "Wait for cassandra db to start..." | |
25 | + sleep 10 | |
26 | + done | |
27 | +fi | |
28 | + | |
29 | +if [ "$DATABASE_TYPE" == "sql" ]; then | |
30 | + if [ "$SPRING_DRIVER_CLASS_NAME" == "org.postgresql.Driver" ]; then | |
31 | + until nmap $POSTGRES_HOST -p $POSTGRES_PORT | grep "$POSTGRES_PORT/tcp open" | |
32 | + do | |
33 | + echo "Waiting for postgres db to start..." | |
34 | + sleep 10 | |
35 | + done | |
36 | + fi | |
37 | +fi | |
38 | + | |
39 | +if [ "$ADD_SCHEMA_AND_SYSTEM_DATA" == "true" ]; then | |
40 | + echo "Creating 'Thingsboard' schema and system data..." | |
41 | + if [ "$ADD_DEMO_DATA" == "true" ]; then | |
42 | + echo "plus demo data..." | |
43 | + /usr/share/thingsboard/bin/install/install.sh --loadDemo | |
44 | + elif [ "$ADD_DEMO_DATA" == "false" ]; then | |
45 | + /usr/share/thingsboard/bin/install/install.sh | |
46 | + fi | |
47 | +fi | |
48 | + | |
33 | 49 | |
34 | 50 | # Copying env variables into conf files |
35 | 51 | printenv | awk -F "=" '{print "export " $1 "='\''" $2 "'\''"}' >> /usr/share/thingsboard/conf/thingsboard.conf | ... | ... |