smartgears-distribution/buildDistribution.sh

58 lines
1.9 KiB
Bash
Executable File

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