Files
ack-image-builder/build/build.sh
2021-04-07 20:59:33 +08:00

71 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -x
set -e
CUR_DIR=$(dirname $(readlink -e -v ${BASH_SOURCE[0]}))
SRC_DIR=$(dirname $CUR_DIR)
usage() {
cat >&2 <<-EOF
Usage:
$0 build_template_file
Example:
$0 $SRC_DIR/examples/ack-aliyunlinux2.json
EOF
}
check_params() {
BUILD_TEMPLATE_FILE="$1"
if [[ -z $BUILD_TEMPLATE_FILE ]]; then
echo "ERROR: must be specify one template file"
usage
return 1
fi
if ! [[ -f $BUILD_TEMPLATE_FILE ]]; then
echo "ERROR: cannot find file: $BUILD_TEMPLATE_FILE"
return 1
fi
}
check_env() {
if [[ -z $ALICLOUD_REGION || -z $ALICLOUD_ACCESS_KEY || -z $ALICLOUD_SECRET_KEY ]]; then
echo "ERROR: ALICLOUD_REGION/ALICLOUD_ACCESS_KEY/ALICLOUD_SECRET_KEY must be not empty"
return 1
fi
if [[ -z "$RUNTIME" ]]; then
echo "WARN: RUNTIME is empty, will set it 'docker' by default"
RUNTIME="docker"
fi
}
check_docker_image() {
if docker inspect registry.aliyuncs.com/acs/ack-image-builder:v1.0.0 &>/dev/null; then
:
else
make
fi
}
build_os_image() {
docker run -e ALICLOUD_REGION=$ALICLOUD_REGION \
-e ALICLOUD_ACCESS_KEY=$ALICLOUD_ACCESS_KEY \
-e ALICLOUD_SECRET_KEY=$ALICLOUD_SECRET_KEY \
-e RUNTIME=$RUNTIME \
-v $BUILD_TEMPLATE_FILE:/scripts/$(basename $BUILD_TEMPLATE_FILE) \
registry.aliyuncs.com/acs/ack-image-builder:v1.0.0 /scripts/$(basename $BUILD_TEMPLATE_FILE)
}
main() {
check_params "$@"
check_env
check_docker_image
build_os_image
}
main "$@"