summaryrefslogtreecommitdiffstats
path: root/distribution
diff options
context:
space:
mode:
Diffstat (limited to 'distribution')
-rw-r--r--distribution/cassandra/Dockerfile3
-rw-r--r--distribution/cassandra/docker-entrypoint.sh17
-rw-r--r--distribution/cassandra/music_single.cql2
-rw-r--r--distribution/dockermusic/README.md17
-rw-r--r--distribution/dockermusic/properties/music.properties19
-rw-r--r--distribution/dockermusic/start.sh82
6 files changed, 137 insertions, 3 deletions
diff --git a/distribution/cassandra/Dockerfile b/distribution/cassandra/Dockerfile
index 0e851f47..9405fcb3 100644
--- a/distribution/cassandra/Dockerfile
+++ b/distribution/cassandra/Dockerfile
@@ -4,5 +4,6 @@ RUN mkdir -p /docker-entrypoint-initdb.d && mkdir -p /home/cassandra/.cassandra
COPY cassandra.yaml /etc/cassandra/
COPY music_single.cql /docker-entrypoint-initdb.d/
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
-RUN chmod 755 /usr/local/bin/docker-entrypoint.sh
+RUN chmod 755 /usr/local/bin/docker-entrypoint.sh && chown -R cassandra /docker-entrypoint-initdb.d
+
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/distribution/cassandra/docker-entrypoint.sh b/distribution/cassandra/docker-entrypoint.sh
index e46dea9f..cec4587b 100644
--- a/distribution/cassandra/docker-entrypoint.sh
+++ b/distribution/cassandra/docker-entrypoint.sh
@@ -60,10 +60,25 @@ if [ "$1" = 'cassandra' ]; then
fi
done
fi
+
+for f in /docker-entrypoint-initdb.d/*.cql; do
+ if [ "${CASSUSER}" ]; then
+ sed -ri 's/CASSUSER/'${CASSUSER}'/' "$f"
+ fi
+ if [ "${CASSPASS}" ]; then
+ sed -ri 's/CASSPASS/'${CASSPASS}'/' "$f"
+ fi
+done
+
+
+
+
echo "################################ Let run Scripts ##############################"
for f in /docker-entrypoint-initdb.d/*; do
+
case "$f" in
- *.cql) echo "$0: running $f" && until cqlsh -u cassandra -p cassandra -f "$f"; do >&2 echo "Cassandra is unavailable - sleeping"; sleep 2; done & ;;
+ *.cql)
+ echo "$0: running $f" && until cqlsh -u cassandra -p cassandra -f "$f"; do >&2 echo "Cassandra is unavailable - sleeping"; sleep 2; done & ;;
*) echo "$0: ignoring $f" ;;
esac
echo
diff --git a/distribution/cassandra/music_single.cql b/distribution/cassandra/music_single.cql
index 11eb2df0..b8a60cd1 100644
--- a/distribution/cassandra/music_single.cql
+++ b/distribution/cassandra/music_single.cql
@@ -16,5 +16,5 @@ CREATE TABLE IF NOT EXISTS admin.keyspace_master (
PRIMARY KEY (uuid)
);
-CREATE ROLE IF NOT EXISTS nelson24 WITH PASSWORD = 'winman123' AND SUPERUSER = True AND LOGIN = True;
+CREATE ROLE IF NOT EXISTS CASSUSER WITH PASSWORD = 'CASSPASS' AND SUPERUSER = True AND LOGIN = True;
ALTER ROLE cassandra WITH PASSWORD = 'SomeLongRandomStringNoonewillthinkof';
diff --git a/distribution/dockermusic/README.md b/distribution/dockermusic/README.md
new file mode 100644
index 00000000..436921b0
--- /dev/null
+++ b/distribution/dockermusic/README.md
@@ -0,0 +1,17 @@
+### Docker Setup for Single instance of MUSIC
+
+<p>Please update the <b>properties/music.properties</b> file to fit your env.<br/>
+Update the start.sh file.<br/>
+The beginning of the <b>start.sh</b> file contains various variables.<br/></p>
+
+CASS_IMG - Cassandra Image<br/>
+TOMCAT_IMG - Tomcat Image<br/>
+ZK_IMG - Zookeeper Image<br/>
+MUSIC_IMG - Music Image containing the MUSIC war file.<br/>
+WORK_DIR - Default to PWD.<br/>
+CASS_USERNAME - Username for Cassandra - should match cassandra.user in music.properties
+file<br/>
+CASS_PASSWORD - Password for Cassandra - should match cassandra.password in music.properties.<br/>
+
+MUSIC Logs will be saved in logs/MUSIC after start of tomcat.<br/>
+
diff --git a/distribution/dockermusic/properties/music.properties b/distribution/dockermusic/properties/music.properties
new file mode 100644
index 00000000..02ba435c
--- /dev/null
+++ b/distribution/dockermusic/properties/music.properties
@@ -0,0 +1,19 @@
+my.public.ip=localhost
+all.public.ips=localhost
+my.id=0
+all.ids=0
+#######################################
+# Optional current values are defaults
+#######################################
+zookeeper.host=music-zk
+cassandra.host=music-db
+#music.ip=localhost
+#debug=true
+#music.rest.ip=localhost
+#lock.lease.period=6000
+cassandra.user=xxuserxxx
+cassandra.password=xxpasswordxx
+# AAF Endpoint if using AAF
+#aaf.endpoint.url=
+
+
diff --git a/distribution/dockermusic/start.sh b/distribution/dockermusic/start.sh
new file mode 100644
index 00000000..57b05890
--- /dev/null
+++ b/distribution/dockermusic/start.sh
@@ -0,0 +1,82 @@
+#
+# -------------------------------------------------------------------------
+# Copyright (c) 2017 AT&T Intellectual Property
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+# In this example we are building a docker bridge network(music-net) for all
+# the containers
+# Then we connect the host bridge network(bridge) to the internal network(music-net)
+#
+#
+#
+CASS_IMG=nexus3.onap.org:10001/onap/music/cassandra_music:latest
+TOMCAT_IMG=nexus3.onap.org:10001/library/tomcat:8.0
+ZK_IMG=nexus3.onap.org:10001/library/zookeeper:3.4
+MUSIC_IMG=nexus3.onap.org:10001/onap/music/music:latest
+WORK_DIR=${PWD}
+CASS_USERNAME=cassandra1
+CASS_PASSWORD=cassandra1
+
+if [ "$1" = "start" ]; then
+
+# Create Volume for mapping war file and tomcat
+docker volume create music-vol;
+
+# Create a network for all the containers to run in.
+docker network create music-net;
+
+# Start Cassandra
+docker run -d --rm --name music-db --network music-net \
+-p "7000:7000" -p "7001:7001" -p "7199:7199" -p "9042:9042" -p "9160:9160" \
+-e CASSNAME=${CASS_USERNAME} \
+-e CASSPASS=${CASS_PASSWORD} \
+${CASS_IMG};
+
+# Start Music war
+docker run -d --rm --name music-war \
+-v music-vol:/app \
+${MUSIC_IMG};
+
+# Start Zookeeper
+docker run -d --rm --name music-zk --network music-net
+-p "2181:2181" -p "2888:2888" -p "3888:3888" \
+${ZK_IMG};
+
+# Delay for Cassandra
+sleep 20;
+
+# Start Up tomcat - Needs to have properties,logs dir and war file volume mapped.
+docker run -d --rm --name music-tomcat --network music-net -p "8080:8080" \
+-v music-vol:/usr/local/tomcat/webapps \
+-v ${WORK_DIR}/properties:/opt/app/music/etc:ro \
+-v ${WORK_DIR}/logs:/opt/app/music/logs \
+${TOMCAT_IMG};
+
+# Connect tomcat to host bridge network so that its port can be seen.
+docker network connect bridge music-tomcat;
+
+fi
+
+
+# Shutdown and clean up.
+if [ "$1" = "stop" ]; then
+docker stop music-war;
+docker stop music-db;
+docker stop music-zk;
+docker stop music-tomcat;
+docker network rm music-net;
+sleep 5;
+docker volume rm music-vol;
+fi