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