--- /dev/null
+#!/usr/bin/env sh
+
+shopt -s extglob
+
+images="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker \
+ mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker \
+ mbt-node14-java19-docker mbt-node16-java19-docker mbt-node18-java19-docker"
+
+repositories="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker \
+ mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker \
+ mbt-node14-java19-docker mbt-node16-java19-docker mbt-node18-java19-docker"
+
+usage() {
+ echo " Build docker images.
+
+ Usage:
+ ./$(basename $0) [-b <name>]
+ ./$(basename $0) [-p <name>]
+ ./$(basename $0) [-c]
+ ./$(basename $0) [-h]
+
+ Options:
+ -h Show this help.
+ -b <${images//+([[:space:]])/|}|all> Build docker images.
+ -p <${repositories//+([[:space:]])/|}|all> Push docker images.
+ -c Clean docker images." 1>&2; exit 1;
+}
+
+build_all() {
+ for image in ${images}; do
+ make NAME=${image}
+ done
+}
+
+push_all() {
+ for repository in ${repositories}; do
+ make docker-push-registry NAME=${repository}
+ done
+}
+
+[ $# -eq 0 ] && usage
+while getopts ":b:p:ch" option; do
+ case "${option}" in
+ b)
+ name=${OPTARG}
+ if [[ ${name} == "all" ]]; then
+ build_all
+ elif [[ -z "${images##*$name*}" ]]; then
+ make NAME=${name}
+ else
+ echo "Error: Unknown image name as option argument '${OPTARG}'" >&2;
+ usage
+ fi
+ ;;
+ p)
+ repository=${OPTARG}
+ if [[ ${repository} == "all" ]]; then
+ push_all
+ elif [[ -z "${repositories##*$repository*}" ]]; then
+ make docker-push-registry NAME=${repository}
+ else
+ echo "Error: Unknown repository name as option argument '${OPTARG}'" >&2;
+ usage
+ fi
+ ;;
+ c)
+ make dist-clean
+ ;;
+ :)
+ echo "Error: Missing option argument for '-${OPTARG}'" >&2;
+ usage
+ ;;
+ \?)
+ # Invalid option
+ echo "Error: Unknown or invalid option for '-${OPTARG}'" >&2;
+ usage
+ ;;
+ *|h)
+ usage
+ ;;
+ esac
+done
version: '3.8'
services:
+ # TODO: remove once xmake is configured to push all images
mbt-docker:
platform: linux/amd64
build:
dockerfile: Dockerfile
+ mbt-node18-java11-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 18.12.1
+ SAPMACHINE_VERSION: 11.0.17
+ dockerfile: Dockerfile
+ mbt-node16-java11-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 16.18.1
+ SAPMACHINE_VERSION: 11.0.17
+ dockerfile: Dockerfile
+ mbt-node14-java11-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 14.21.1
+ SAPMACHINE_VERSION: 11.0.17
+ dockerfile: Dockerfile
+ mbt-node18-java17-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 18.12.1
+ SAPMACHINE_VERSION: 17.0.5
+ dockerfile: Dockerfile
+ mbt-node16-java17-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 16.18.1
+ SAPMACHINE_VERSION: 17.0.5
+ dockerfile: Dockerfile
+ mbt-node14-java17-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 14.21.1
+ SAPMACHINE_VERSION: 17.0.5
+ dockerfile: Dockerfile
+ mbt-node18-java19-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 18.12.1
+ SAPMACHINE_VERSION: 19.0.1
+ dockerfile: Dockerfile
+ mbt-node16-java19-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 16.18.1
+ SAPMACHINE_VERSION: 19.0.1
+ dockerfile: Dockerfile
+ mbt-node14-java19-docker:
+ platform: linux/amd64
+ build:
+ args:
+ NODE_VERSION: 14.21.1
+ SAPMACHINE_VERSION: 19.0.1
+ dockerfile: Dockerfile