hello-world-sg4-service/buildImageAndStart.sh

69 lines
2.2 KiB
Bash
Executable File

#!/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