Bump versions to latest
[mbt-docker.git] / build-image.sh
CommitLineData
d2913546
JB
1#!/usr/bin/env sh
2
0ab1c3ca
JB
3shopt -s extglob
4
28df4c45
JB
5images="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 \
81986a8d
JB
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"
d2913546 9
5b7b664b
JB
10repositories="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 \
3442a8df
JB
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
d2913546 15usage() {
0ab1c3ca
JB
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;
d2913546
JB
29}
30
3442a8df 31build_all() {
d2913546
JB
32 for image in ${images}; do
33 make NAME=${image}
34 done
35}
36
3442a8df
JB
37push_all() {
38 for repository in ${repositories}; do
39 make docker-push-registry NAME=${repository}
40 done
41}
42
d2913546 43[ $# -eq 0 ] && usage
3442a8df 44while getopts ":b:p:ch" option; do
d2913546 45 case "${option}" in
3442a8df 46 b)
d2913546 47 name=${OPTARG}
535de2bb 48 if [ ${name} = "all" ]; then
3442a8df 49 build_all
535de2bb 50 elif [ -z "${images##*$name*}" ]; then
d2913546
JB
51 make NAME=${name}
52 else
3442a8df 53 echo "Error: Unknown image name as option argument '${OPTARG}'" >&2;
d2913546 54 usage
d2913546
JB
55 fi
56 ;;
3442a8df
JB
57 p)
58 repository=${OPTARG}
535de2bb 59 if [ ${repository} = "all" ]; then
3442a8df 60 push_all
535de2bb 61 elif [ -z "${repositories##*$repository*}" ]; then
3442a8df
JB
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
76f7abe4 70 ;;
30a42bd5 71 :)
3442a8df
JB
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;
30a42bd5 78 usage
76f7abe4 79 ;;
d2913546
JB
80 *|h)
81 usage
82 ;;
83 esac
84done