Add support SAP JVM 8
[mbt-docker.git] / build-image.sh
1 #!/usr/bin/env sh
2
3 shopt -s extglob
4
5 images="mbt-node14-java8-docker mbt-node16-java8-docker mbt-node18-java8-docker \
6 mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker \
7 mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker \
8 mbt-node14-java19-docker mbt-node16-java19-docker mbt-node18-java19-docker"
9
10 repositories="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker \
11 mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker \
12 mbt-node14-java19-docker mbt-node16-java19-docker mbt-node18-java19-docker"
13
14 usage() {
15 echo " Build docker images.
16
17 Usage:
18 ./$(basename $0) [-b <name>]
19 ./$(basename $0) [-p <name>]
20 ./$(basename $0) [-c]
21 ./$(basename $0) [-h]
22
23 Options:
24 -h Show this help.
25 -b <${images//+([[:space:]])/|}|all> Build docker images.
26 -p <${repositories//+([[:space:]])/|}|all> Push docker images.
27 -c Clean docker images." 1>&2; exit 1;
28 }
29
30 build_all() {
31 for image in ${images}; do
32 make NAME=${image}
33 done
34 }
35
36 push_all() {
37 for repository in ${repositories}; do
38 make docker-push-registry NAME=${repository}
39 done
40 }
41
42 [ $# -eq 0 ] && usage
43 while getopts ":b:p:ch" option; do
44 case "${option}" in
45 b)
46 name=${OPTARG}
47 if [ ${name} = "all" ]; then
48 build_all
49 elif [ -z "${images##*$name*}" ]; then
50 make NAME=${name}
51 else
52 echo "Error: Unknown image name as option argument '${OPTARG}'" >&2;
53 usage
54 fi
55 ;;
56 p)
57 repository=${OPTARG}
58 if [ ${repository} = "all" ]; then
59 push_all
60 elif [ -z "${repositories##*$repository*}" ]; then
61 make docker-push-registry NAME=${repository}
62 else
63 echo "Error: Unknown repository name as option argument '${OPTARG}'" >&2;
64 usage
65 fi
66 ;;
67 c)
68 make dist-clean
69 ;;
70 :)
71 echo "Error: Missing option argument for '-${OPTARG}'" >&2;
72 usage
73 ;;
74 \?)
75 # Invalid option
76 echo "Error: Unknown or invalid option for '-${OPTARG}'" >&2;
77 usage
78 ;;
79 *|h)
80 usage
81 ;;
82 esac
83 done