From 268e511a4baf04f5e8aeb2b844296fc4c75e8f0d Mon Sep 17 00:00:00 2001 From: Yura Date: Fri, 11 May 2018 17:38:25 +0300 Subject: [PATCH 1/2] add cassandra schema initialization --- Dockerfile.cassandra | 12 ++++++++++++ base-docker-compose.yml | 7 ++++++- entrypoint-with-db-init.sh | 12 ++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.cassandra create mode 100644 entrypoint-with-db-init.sh diff --git a/Dockerfile.cassandra b/Dockerfile.cassandra new file mode 100644 index 0000000000..9fe1ee528a --- /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"] + diff --git a/base-docker-compose.yml b/base-docker-compose.yml index 4c19a54fb6..bf8afacc1e 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: diff --git a/entrypoint-with-db-init.sh b/entrypoint-with-db-init.sh new file mode 100644 index 0000000000..fee2cf482e --- /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 "$@" From f2bbe7e1db0617b6e631b9fbea9c8a1cd45a25a4 Mon Sep 17 00:00:00 2001 From: Yura Date: Fri, 11 May 2018 17:56:11 +0300 Subject: [PATCH 2/2] reformat dockerfile --- Dockerfile.cassandra | 3 ++- entrypoint-with-db-init.sh | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile.cassandra b/Dockerfile.cassandra index 9fe1ee528a..b68b78a665 100644 --- a/Dockerfile.cassandra +++ b/Dockerfile.cassandra @@ -3,10 +3,11 @@ 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"] +CMD ["cassandra", "-f"] diff --git a/entrypoint-with-db-init.sh b/entrypoint-with-db-init.sh index fee2cf482e..3fb3bce965 100644 --- a/entrypoint-with-db-init.sh +++ b/entrypoint-with-db-init.sh @@ -1,12 +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" + echo "cqlsh: Cassandra is unavailable - retrying" sleep 2 done & + fi exec /docker-entrypoint.sh "$@"