add usage (help) to build script
parent
f50c85cce9
commit
6cef778b83
107
build
107
build
|
@ -1,56 +1,79 @@
|
|||
#!/bin/bash
|
||||
declare targets=(dev arm amd deploy private multi)
|
||||
declare OPTION; declare OPTARG; declare OPTIND
|
||||
while getopts 'b:d:t:nyr:u:px' OPTION; do
|
||||
# echo processing: option:$OPTION argument:$OPTARG index:$OPTIND remaining:${@:$OPTIND}
|
||||
case "$OPTION" in
|
||||
b)
|
||||
# CUSTOM BASE IMAGE
|
||||
BASE_IMAGE=$OPTARG
|
||||
;;
|
||||
d)
|
||||
# LINUX_DISTRO=$OPTARG
|
||||
LINUX_DISTRO=$OPTARG
|
||||
;;
|
||||
x)
|
||||
# Exclude distro from image name
|
||||
exclude_distro=true
|
||||
;;
|
||||
t)
|
||||
TAG=$OPTARG
|
||||
;;
|
||||
u)
|
||||
RUSER=$OPTARG
|
||||
;;
|
||||
y)
|
||||
try=true
|
||||
;;
|
||||
p)
|
||||
push=true
|
||||
;;
|
||||
n)
|
||||
NO_CACHE=true
|
||||
;;
|
||||
r)
|
||||
REPO=$OPTARG
|
||||
;;
|
||||
*) echo unknown run option -$OPTARG
|
||||
echo "USAGE: build <setup options> target(or target)"
|
||||
echo "available options -d <LINUX_DISTRO>; -t <TAG>; -e execute test script after build; -n for --no_cache "
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND - 1))
|
||||
usage() { # Function: Print a help message.
|
||||
echo "Image Build Script: Creates one or more images using a target in the docker-bake.hcl file"
|
||||
echo "USAGE: $0 <setup options> buildtarget <imagename, imageuser>"
|
||||
echo "valid targets: ${targets[*]}; default: dev"
|
||||
echo no argument options:
|
||||
echo "-c try out the image by starting a container terminal therein, for dev target this is the default;"
|
||||
echo "-x exclude distro from image name;"
|
||||
echo "-n for --no_cache"
|
||||
echo "-p push to repository; after build push to repository default is hub.docker.common (not need for deploy target)"
|
||||
echo required argument options:
|
||||
echo "-t <TAG> tag following : in output image name (i.e. REPO/USER/NAME:TAG), default: latest"
|
||||
echo "-u <USER>; repository user prefix in output image name (i.e. REPO/USER/NAME:TAG)"
|
||||
echo "-r <REPO>; private repo name, do not use for hub.docker.com (docker.io)"
|
||||
echo "-b <BASE_IMAGE>; used in FROM in Dockerfile, default is official distro image (e.g. alpine:latest)"
|
||||
}
|
||||
|
||||
exit_abnormal() { # Function: Exit with error.
|
||||
usage
|
||||
exit ${1:-1}
|
||||
}
|
||||
|
||||
|
||||
[ $NO_CACHE ] && nocache="--no-cache" || nocache=""
|
||||
while getopts ':b:d:t:ncr:u:pxh' OPTION; do
|
||||
# echo processing: option:$OPTION argument:$OPTARG index:$OPTIND remaining:${@:$OPTIND}
|
||||
case "$OPTION" in
|
||||
b)
|
||||
# CUSTOM BASE IMAGE
|
||||
BASE_IMAGE=$OPTARG
|
||||
;;
|
||||
d)
|
||||
# LINUX_DISTRO=$OPTARG
|
||||
LINUX_DISTRO=$OPTARG
|
||||
;;
|
||||
x)
|
||||
# Exclude distro from image name
|
||||
exclude_distro=true
|
||||
;;
|
||||
t)
|
||||
TAG=$OPTARG
|
||||
;;
|
||||
u)
|
||||
RUSER=$OPTARG
|
||||
;;
|
||||
c)
|
||||
try=true
|
||||
;;
|
||||
p)
|
||||
push=true
|
||||
;;
|
||||
n)
|
||||
nocache="--no-cache"
|
||||
;;
|
||||
r)
|
||||
REPO=$OPTARG
|
||||
;;
|
||||
h)
|
||||
exit_abnormal 0
|
||||
;;
|
||||
*)
|
||||
echo "unknown $0 option -$OPTARG"
|
||||
exit_abnormal 4
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
target=${1:-dev}
|
||||
LINUX_DISTRO=${LINUX_DISTRO:-alpine}
|
||||
name=$2
|
||||
RUSER=${3:-$RUSER}
|
||||
|
||||
|
||||
IMAGE_NAME=$([[ $RUSER ]] && echo ${RUSER}/)${name}$([[ (! $exclude_distro) && $name ]] && echo "-")$([[ ! $exclude_distro ]] && echo ${LINUX_DISTRO})
|
||||
if [[ $BASE_IMAGE ]]; then
|
||||
echo determining DISTRO of base image: $BASE_IMAGE
|
||||
|
|
Loading…
Reference in New Issue