From 28ab1571b11613bb31b3f7ebcd7a476dac1075b3 Mon Sep 17 00:00:00 2001 From: Chad Redman Date: Thu, 14 Jan 2021 23:18:00 -0500 Subject: [PATCH] Improvements to gte command: flags for --fg (don't detach), --rabbitmq (run rabbitmq and link), can pass in other docker arguments and startup commands Examples: ./gte Pass in which gte environment to spin up: 101.1.1 201.1.1 ... ./gte -it 201.1.1 bash Removing old containers a1a5f15114f6 Starting container tier/gte:201.1.1-202102 grouperContainer; INFO: (library.sh) Start loading library.sh ... grouperContainer; INFO: (entrypoint.sh) Executing bash [root@f49a43dff360 WEB-INF]# ./gte --fg 201.1.1 ping rabbitmq Removing old containers b6df1e95053c Starting container tier/gte:201.1.1-202102 grouperContainer; INFO: (library.sh) Start loading library.sh ... grouperContainer; INFO: (entrypoint.sh) Executing ping rabbitmq ping: rabbitmq: Name or service not known ./gte --fg --rabbitmq 201.1.1 ping rabbitmq Removing old containers f49a43dff360 Removing any old rabbitmq containers Starting container rabbitmq:management 14ea18b53c1f11f52ff29e8f2c7e176fec510b45a5ecc774f4664280702c24fa Starting container tier/gte:201.1.1-202102 grouperContainer; INFO: (library.sh) Start loading library.sh ... grouperContainer; INFO: (entrypoint.sh) Executing ping rabbitmq PING rabbitmq (192.168.16.2) 56(84) bytes of data. 64 bytes from rabbitmq (192.168.16.2): icmp_seq=1 ttl=64 time=0.110 ms 64 bytes from rabbitmq (192.168.16.2): icmp_seq=2 ttl=64 time=0.110 ms --- gte | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 7 deletions(-) diff --git a/gte b/gte index d35e6f2..283a808 100755 --- a/gte +++ b/gte @@ -1,10 +1,43 @@ #! /bin/bash - + +VERSION_TAG=202102 + +EXTRA_ARGS= +RABBITMQ_FL= + +show_help() { + echo "$0 [--rabbitmq] [--fg|-it] [docker args ...] [container cmd ...]" + echo " --rabbitmq: also start up a rabbitmq container, and link it as name 'rabbitmq'" + echo " --fg: Don't detach (i.e., don't run container with -d flag" + echo " -h|--help: This help message" + echo "" + echo "If no GTE lesson id number is passed in, the command will list all the available ids" +} + +for arg in $*; do + case $arg in + --rabbitmq) EXTRA_ARGS="$EXTRA_ARGS --link rabbitmq:rabbitmq"; RABBITMQ_FL=1; shift;; + --fg) is_foreground=1; shift;; + -it) is_foreground=1; EXTRA_ARGS="$EXTRA_ARGS $1"; shift;; + -h|--help) show_help; exit 0;; + -*) EXTRA_ARGS="$EXTRA_ARGS $1"; shift;; + *) break;; + esac +done + +#echo args=$* +#echo EXTRA_ARGS=$EXTRA_ARGS +#echo RABBITMQ_FL=$RABBITMQ + +if [ "$is_foreground" != 1 ]; then + EXTRA_ARGS="$EXTRA_ARGS -d" +fi + if [ -z "$1" ] then #docker images tier/gte echo "Pass in which gte environment to spin up:" - my_array=( $( docker images | grep 'tier/gte' | grep -v base | awk '{print $2}' | sort ) ) + my_array=( $( docker images | grep "tier/gte.*$VERSION_TAG" | grep -v base | awk '{print $2}' | sort ) ) for i in "${my_array[@]}" do # strip last 7 chars (-202102) @@ -14,21 +47,31 @@ if [ -z "$1" ] exit 1 fi -# remove rabbitmq and all gte containers -docker rm -f rabbitmq 2> /dev/null +LESSON_ID=$1 +shift + # see if there is a container CONTAINER="$( docker ps -a | grep 'tier/gte' | awk '{print $1}' )" # if so, then rm it if [ ! -z "$CONTAINER" ]; then + echo "Removing old containers" docker ps -a | grep 'tier/gte' | awk '{print $1}' | xargs docker rm -f fi -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -$DIR/start-rabbitmq.sh +if [ "$RABBITMQ_FL" == 1 ]; then + echo Removing any old rabbitmq containers + docker rm -f rabbitmq 2> /dev/null + #DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + #$DIR/start-rabbitmq.sh + echo "Starting container rabbitmq:management" + docker run -d -p 15672:15672 --env RABBITMQ_NODENAME=docker-rabbit --hostname rabbitmq --name=rabbitmq rabbitmq:management +fi # lets see which #docker stop "$1" 2> /dev/null #docker rm "$1" 2> /dev/null -docker run -d -p 8443:443 --link rabbitmq:rabbitmq --name $1 tier/gte:"$1"-202102 +#docker run -d -p 8443:443 --link rabbitmq:rabbitmq --name $1 tier/gte:"$1"-202102 +echo "Starting container tier/gte:"$LESSON_ID"-$VERSION_TAG" +docker run -p 8443:443 $EXTRA_ARGS --name $LESSON_ID tier/gte:"$LESSON_ID"-$VERSION_TAG $*