diff options
Diffstat (limited to 'distribution/dockermusic')
-rw-r--r-- | distribution/dockermusic/README.md | 17 | ||||
-rw-r--r-- | distribution/dockermusic/properties/music.properties | 19 | ||||
-rw-r--r-- | distribution/dockermusic/start.sh | 82 |
3 files changed, 118 insertions, 0 deletions
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 |