run_services_in_docker.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #!/bin/bash
  2. # default ports
  3. # UI API DF RD PS
  4. ports=("80" "5000" "5050" "6380" "5430")
  5. # default flag for bulding docker images
  6. b=true
  7. # parse arguments
  8. args=("$@")
  9. i=0
  10. while [ $i -lt $# ]
  11. do
  12. case ${args[$i]} in
  13. "-ui")
  14. ports[0]=${args[$i+1]}
  15. ;;
  16. "-api")
  17. ports[1]=${args[$i+1]}
  18. ;;
  19. "-df")
  20. ports[2]=${args[$i+1]}
  21. ;;
  22. "-rd")
  23. ports[3]=${args[$i+1]}
  24. ;;
  25. "-ps")
  26. ports[4]=${args[$i+1]}
  27. ;;
  28. "-b")
  29. b=false
  30. let i--
  31. ;;
  32. "stop")
  33. echo
  34. echo Stopping containers...
  35. docker stop baangt-ui baangt-api baangt-file rq-worker redis postgres
  36. exit 1
  37. ;;
  38. esac
  39. let i=$i+2
  40. done
  41. # building docker images
  42. if [ $b = true ]
  43. then
  44. # UI Service
  45. echo
  46. echo Building UI Service...
  47. docker build -t baangt-ui:latest ui
  48. # File Servise
  49. echo
  50. echo Building DataFile Service...
  51. docker build -t baangt-file:latest files
  52. # API Service
  53. echo
  54. echo Building Execution API Service...
  55. docker build -t baangt-api:latest api
  56. fi
  57. # running containers
  58. # Redis
  59. echo
  60. echo Starting Redis...
  61. docker run -d -p ${ports[3]}:6379 --name redis --rm redis:5-alpine
  62. # RQ Worker
  63. echo
  64. echo Starting Redis Worker...
  65. docker run -d --name rq-worker \
  66. -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]} --rm \
  67. -e DATABASE_URL=postgresql://baangt:12345@172.17.0.1:${ports[4]}/baangt \
  68. -e REDIS_URL=redis://172.17.0.1:${ports[3]}/0 --entrypoint "./runservice.rq.sh" \
  69. baangt-api:latest
  70. # PostgreSQL
  71. echo
  72. echo Starting PostgreSQL...
  73. docker run -d -p ${ports[4]}:5432 --name postgres -e POSTGRES_PASSWORD=12345 \
  74. -e POSTGRES_USER=baangt -e POSTGRES_DB=baangt --rm postgres:10.12
  75. # Data Files
  76. echo
  77. echo Starting Data File Service...
  78. docker run -d -p ${ports[2]}:5000 --name baangt-file --rm baangt-file:latest
  79. # UI Service
  80. echo
  81. echo Starting UI Service...
  82. docker run -d -p ${ports[0]}:5000 --name baangt-ui \
  83. -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]} \
  84. -e BAANGT_API_HOST=172.17.0.1:${ports[1]} --rm baangt-ui:latest
  85. # API Service
  86. echo
  87. echo Starting Execution API Service...
  88. docker run -d -p ${ports[1]}:5000 --name baangt-api --rm \
  89. -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]} \
  90. -e DATABASE_URL=postgresql://baangt:12345@172.17.0.1:${ports[4]}/baangt \
  91. -e REDIS_URL=redis://172.17.0.1:${ports[3]}/0 baangt-api:latest