Advertisement
MertcanGokgoz

Docker CLI

Dec 20th, 2018
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.04 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. BLUE="\\033[1;34m"
  4. GREEN="\\033[1;32m"
  5. NORMAL="\\033[0;39m"
  6. RED="\\033[1;31m"
  7.  
  8. print_help() {
  9.     echo -e "${BLUE}Available environments${NORMAL}"
  10.     echo "  - DEV (default)"
  11.     echo "  - PROD"
  12.     echo "  - STAGING"
  13.     echo ""
  14.     echo -e "${BLUE}Available commands${NORMAL}"
  15.     echo -e "  > build \t\t Build or rebuild services"
  16.     echo -e "  > django [:command] \t Run a django-specific command"
  17.     echo -e "  > docker [:command] \t Run a docker command"
  18.     echo -e "  > logs [:service] \t View output from containers"
  19.     echo -e "  > runserver \t\t Run development server"
  20.     echo -e "  > shell \t\t Connect to a BASH session from the service inside"
  21.     echo -e "  > start \t\t Create and start containers"
  22.     echo -e "  > status \t\t List containers"
  23.     echo -e "  > stop \t\t Stop services"
  24. }
  25.  
  26. docker_command() {
  27.     command="docker-compose -f docker-compose.yml "
  28.  
  29.     if [ ${ENV} = "PROD" ]
  30.     then
  31.         file_prefix="prod"
  32.     elif [ ${ENV} = "STAGING" ]
  33.     then
  34.         file_prefix="staging"
  35.     else
  36.         file_prefix="dev"
  37.     fi
  38.  
  39.     command+="-f docker-compose.${file_prefix}.yml ${@}"
  40.     echo -e "${BLUE}    Command: ${NORMAL}${command}"
  41.     echo -e ""
  42.     eval ${command}
  43. }
  44.  
  45. build() {
  46.     docker_command build
  47. }
  48.  
  49. django() {
  50.     docker_command run --rm backend python manage.py ${@}
  51. }
  52.  
  53. docker() {
  54.     docker_command ${@}
  55. }
  56.  
  57. logs() {
  58.     docker_command logs -f --tail 50 ${@}
  59. }
  60.  
  61. runserver() {
  62.     docker_command run --rm --service-ports backend
  63. }
  64.  
  65. shell() {
  66.     docker_command run --rm backend bash
  67. }
  68.  
  69. status() {
  70.     docker_command ps
  71. }
  72.  
  73. start() {
  74.     docker_command up -d
  75. }
  76.  
  77. stop() {
  78.     docker_command stop
  79. }
  80.  
  81. if [ -z ${1} ]
  82. then
  83.     print_help
  84. else
  85.     case ${ENV} in
  86.         "PROD")
  87.             env_str="production"
  88.             ;;
  89.         "STAGING")
  90.             env_str="staging"
  91.             ;;
  92.         *)
  93.             env_str="development"
  94.             ;;
  95.     esac
  96.     echo -e "${BLUE}Environment:${NORMAL} ${env_str}"
  97.     ${@}
  98. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement