#! /bin/bash REPOSITORY=tier/gte VERSION_TAG=202109 EXTRA_ARGS= RABBITMQ_FL= show_help() { echo "$0 [--rabbitmq] [--sql] [--ldap] [--fg|-it] [docker args ...] <gte lesson id> [container cmd ...]" echo " --rabbitmq: also start up a rabbitmq container, and link it as name 'rabbitmq'" echo " --sql: Expose port 3306" echo " --ldap: Expose port 389" 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 --sql) EXTRA_ARGS="$EXTRA_ARGS -p 3306:3306"; shift;; --ldap) EXTRA_ARGS="$EXTRA_ARGS -p 389:389"; shift;; --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 echo "Pass in which gte environment to spin up:" # Get all container tags for tier/gte:*-2021xx my_array=( $(docker images "$REPOSITORY" --format '{{.Tag}}' | grep -- "-$VERSION_TAG$" | sed -e "s/-$VERSION_TAG$//" | sort ) ) for i in "${my_array[@]}" do echo $i done exit 1 fi LESSON_ID=$1 shift # see if there is a container CONTAINERS="$( docker ps -a | grep 'tier/gte' | awk '{print $1}' )" # if so, then rm it if [ ! -z "$CONTAINERS" ]; then echo "Removing old containers" docker rm -f $CONTAINERS fi 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"-202106 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 $*