From feaac84e8062d072fed94d67e7d4b156437bb181 Mon Sep 17 00:00:00 2001 From: lucio Date: Tue, 12 Mar 2024 11:49:06 +0100 Subject: [PATCH] added build image with java version selection --- Dockerfile | 3 ++- buildImageAndStart.sh | 42 +++++++++++++++++++++++++++--------------- docker/logback.xml | 2 +- 3 files changed, 30 insertions(+), 17 deletions(-) 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 @@ - +