#!/bin/bash ################################################################################ # Help # ################################################################################ Help() { # Display Help echo "build and create docker image form smartgears distribution" echo echo "Syntax: buildDistribution [-g arg] [-p|u|h]" echo "options:" echo "g arg specifies the maven goal {package, install, deploy etc} default is package." echo "p build docker image for multiple platform (must be suppported by local docker agent)" echo "u push image to dockerhub (with docker login already done)" echo "h Print this Help." echo } ################################################################################ ################################################################################ # Main program # ################################################################################ ################################################################################ set -e image_version=4.0.0-SNAPSHOT-java11-tomcat10.1.19 push=false while getopts g:puh flag do case "${flag}" in g) goal=${OPTARG};; p) platform=true ;; u) push=true ;; h) Help exit 0;; *) echo "Invalid option" exit 1;; esac done echo "goal: $goal"; echo "platform: $platform"; if [ -z ${goal} ]; then mvn clean package; else mvn clean ${goal}; fi if [ -z ${platform} ]; then docker build -t smartgears-distribution:${image_version} .; else docker build -t smartgears-distribution:${image_version} --platform=linux/amd64,linux/arm64,linux/arm/v7 . ; fi docker tag smartgears-distribution:${image_version} d4science/smartgears-distribution:${image_version} if [ ${push} = true ]; then docker push d4science/smartgears-distribution:${image_version}; fi