imagebuild.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. set -e
  3. show_usage="args: [--image-name=]"
  4. #-o或--options选项后面是可接受的短选项,如ab:c::,表示可接受的短选项为-a -b -c,
  5. #其中-a选项不接参数,-b选项后必须接参数,-c选项的参数为可选的
  6. #-l或--long选项后面是可接受的长选项,用逗号分开,冒号的意义同短选项。
  7. #-n选项后接选项解析错误时提示的脚本名字
  8. ARGS=`getopt -o -h --long help,image-name: -n "$0" -- "$@"`
  9. if [ $? != 0 ]; then
  10. exit 1
  11. fi
  12. #将规范化后的命令行参数分配至位置参数($1,$2,...)
  13. eval set -- "${ARGS}"
  14. while [ -n "$1" ]
  15. do
  16. case "$1" in
  17. -h|--help)
  18. echo "$show_usage"; exit 1 ;;
  19. --image-name)
  20. IMAGE_NAME=$2; shift ;;
  21. *) shift ;;
  22. esac
  23. done
  24. PROJECT_PATH=$(cd `dirname $0`; pwd)
  25. APP_NAME="${PROJECT_PATH##*/}"
  26. VERSION=`cat VERSION`
  27. make version=$VERSION
  28. DOCKERFILE=Dockerfile
  29. if [ -z $IMAGE_NAME ];then
  30. IMAGE_NAME=$APP_NAME
  31. fi
  32. sed -e "s/%APP_NAME%/$APP_NAME/g" ${DOCKERFILE}.in > ${DOCKERFILE}
  33. docker build . -t $IMAGE_NAME