58 lines
1.9 KiB
Bash
Executable File
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 |