59 lines
1.5 KiB
Bash
Executable File
59 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
ARCH=()
|
|
VERSION_ARG=()
|
|
VERSION=""
|
|
REGISTRY=""
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--arch|-a)
|
|
ARCH+=("--arch" "$2")
|
|
shift 2
|
|
;;
|
|
--version|-v)
|
|
VERSION="$2"
|
|
VERSION_ARG+=("--build-arg" "VERSION=$VERSION")
|
|
shift 2
|
|
;;
|
|
--latest|-l)
|
|
VERSION="latest"
|
|
LATEST_TAG=$(git ls-remote --tags --refs --sort='v:refname' https://github.com/Azure/Azurite | tail -n1 | awk -F/ '{ print $3 }')
|
|
VERSION_ARG+=("--build-arg" "VERSION=$LATEST_TAG")
|
|
shift
|
|
;;
|
|
--registry|-r)
|
|
REGISTRY="$2"
|
|
shift 2
|
|
;;
|
|
*)
|
|
echo "Unknown argument: $1" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ -z "$REGISTRY" ]]; then
|
|
IMAGE="azurite"
|
|
else
|
|
IMAGE="$REGISTRY/azurite"
|
|
fi
|
|
|
|
if [[ -z "$VERSION" ]]; then
|
|
TAG_ARGS=("--tag" "$IMAGE:latest")
|
|
elif [[ "$VERSION" == "latest" ]]; then
|
|
TAG_ARGS=("--tag" "$IMAGE:${LATEST_TAG#v}" "--tag" "$IMAGE:latest")
|
|
else
|
|
TAG_ARGS=("--tag" "$IMAGE:${VERSION#v}")
|
|
fi
|
|
|
|
echo "Effective command line arguments:" ${ARCH[@]} ${VERSION_ARG[@]} ${TAG_ARGS[@]}
|
|
if command -v dockerd &> /dev/null; then
|
|
docker build "${ARCH[@]}" "${VERSION_ARG[@]}" "${TAG_ARGS[@]}" .
|
|
elif command -v container &> /dev/null; then
|
|
container build "${ARCH[@]}" "${VERSION_ARG[@]}" "${TAG_ARGS[@]}" .
|
|
else
|
|
echo "Neither supported container runtime found." >&2
|
|
exit 1
|
|
fi
|