#!/bin/bash accepted_java_versions=(11 17) ################################################################################ # Help # ################################################################################ Help() { # Display Help echo "build, create and run in docker the helloworld service" echo echo "Syntax: buildDistribution [-n arg] [-p arg] [-j arg] [-d arg?] [-h]" echo "options:" echo "-n arg specifies the docker image name (default is smartgears-helloworld)." echo "-p arg specifies the port to be exposed for the docker container to access the service (default 8081)" echo "-j arg specify java version (default is 11)" echo " accepted version are: ${accepted_java_versions[@]}" echo "-d arg? enable java debug mode" echo " arg is the debug port (default is 5005)" echo "-h Print this Help." echo } ################################################################################ ################################################################################ # Main program # ################################################################################ ################################################################################ set -e NAME=smartgears-helloworld PORT=8081 DEBUG_PORT=5005 debug=false compile=false java_version=11 while getopts n:p:j:d?h flag do echo ${flag}; case "${flag}" in n) NAME=${OPTARG};; p) PORT=${OPTARG};; d) debug=true && DEBUG_PORT=${OPTARG:-5005};; j) if [[ ${accepted_java_versions[@]} =~ ${OPTARG} ]] then java_version=${OPTARG}; else echo "Invalid java version" && echo "accepted version are: ${accepted_java_versions[@]}" && exit 1; fi;; h) Help && exit 0 ;; *) echo "Invalid option" && exit 1 ;; esac done mvn clean package docker build -t $NAME --build-arg JAVA_VERSION=${java_version} . if [ $debug = false ] ; then docker run -p $PORT:8080 $NAME else docker run -p $PORT:8080 -p $DEBUG_PORT:5005 -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=y" $NAME fi