diff --git a/Dockerfile b/Dockerfile
index 74ca274..5954986 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,5 @@
-FROM d4science/smartgears-distribution:4.0.0-SNAPSHOT-java11-tomcat10.1.19
+ARG JAVA_VERSION=11
+FROM d4science/smartgears-distribution:4.0.0-SNAPSHOT-java$JAVA_VERSION-tomcat10.1.19
COPY ./docker/logback.xml /etc/
COPY ./docker/container.ini /etc/
diff --git a/buildImageAndStart.sh b/buildImageAndStart.sh
index 22b9b26..a1887b4 100755
--- a/buildImageAndStart.sh
+++ b/buildImageAndStart.sh
@@ -1,5 +1,8 @@
#!/bin/bash
+
+accepted_java_versions=(11 17)
+
################################################################################
# Help #
################################################################################
@@ -8,12 +11,15 @@ Help()
# Display Help
echo "build, create and run in docker the helloworld service"
echo
- echo "Syntax: buildDistribution [-n arg] [-p arg] [-d|h]"
+ 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 "d enable java debug mode"
- echo "h Print this Help."
+ 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
}
@@ -25,32 +31,38 @@ Help()
set -e
+
NAME=smartgears-helloworld
PORT=8081
-DEBUG_PORT=5001
+DEBUG_PORT=5005
debug=false
+compile=false
+java_version=11
-while getopts n:p:dh flag
+while getopts n:p:j:d?h flag
do
+ echo ${flag};
case "${flag}" in
n) NAME=${OPTARG};;
p) PORT=${OPTARG};;
- d) debug=true ;;
- h) Help
- exit 0 ;;
- *) echo "Invalid option"
- exit 1 ;;
+ 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 .
+docker build -t $NAME --build-arg JAVA_VERSION=${java_version} .
if [ $debug = false ] ; then
-docker run -p $PORT:8080 $NAME ;
+ 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;
+ 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
diff --git a/docker/logback.xml b/docker/logback.xml
index cacfa90..8a8625f 100644
--- a/docker/logback.xml
+++ b/docker/logback.xml
@@ -7,7 +7,7 @@
-
+