thingsboard-aplcache
Changes
base-docker-compose.yml 7(+6 -1)
Dockerfile.cassandra 12(+12 -0)
entrypoint-with-db-init.sh 12(+12 -0)
Details
base-docker-compose.yml 7(+6 -1)
diff --git a/base-docker-compose.yml b/base-docker-compose.yml
index 4c19a54..bf8afac 100644
--- a/base-docker-compose.yml
+++ b/base-docker-compose.yml
@@ -20,6 +20,9 @@ services:
- "5432:5432"
cassandra-tb:
+ build:
+ context: .
+ dockerfile: Dockerfile.cassandra
image: cassandra
networks:
- core
@@ -27,7 +30,9 @@ services:
- "7199:7199"
- "9160:9160"
- "9042:9042"
-
+ volumes:
+ - /cassandra:/var/lib/cassandra
+ - ./db-schema:/docker-entrypoint-initdb.d/
redis:
image: redis:4.0
networks:
Dockerfile.cassandra 12(+12 -0)
diff --git a/Dockerfile.cassandra b/Dockerfile.cassandra
new file mode 100644
index 0000000..9fe1ee5
--- /dev/null
+++ b/Dockerfile.cassandra
@@ -0,0 +1,12 @@
+FROM cassandra
+
+WORKDIR /opt/cassandra
+
+COPY dao/src/main/resources/cassandra/schema.cql /opt/cassandra
+COPY entrypoint-with-db-init.sh /opt/cassandra/entrypoint-with-db-init.sh
+
+RUN chmod +x /opt/cassandra/entrypoint-with-db-init.sh
+
+ENTRYPOINT ["/opt/cassandra/entrypoint-with-db-init.sh"]
+CMD ["cassandra", "-f"]
+
entrypoint-with-db-init.sh 12(+12 -0)
diff --git a/entrypoint-with-db-init.sh b/entrypoint-with-db-init.sh
new file mode 100644
index 0000000..fee2cf4
--- /dev/null
+++ b/entrypoint-with-db-init.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+if [[ $1 = 'cassandra' ]]; then
+ # Create default keyspace for single node cluster
+
+ until cqlsh -f/opt/cassandra/schema.cql; do
+ echo "cqlsh: Cassandra is unavailable - retring"
+ sleep 2
+ done &
+fi
+
+exec /docker-entrypoint.sh "$@"