run_services_db_permanent.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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. "-mysql")
  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 baangt-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. # postgres
  45. # building docker images
  46. echo
  47. echo Building PostgreSQL image...
  48. docker build -t baangt-postgres:latest postgres
  49. # UI Service
  50. echo
  51. echo Building UI Service...
  52. docker build -t baangt-ui:latest ui
  53. # File Servise
  54. echo
  55. echo Building DataFile Service...
  56. docker build -t baangt-file:latest files
  57. # API Service
  58. echo
  59. echo Building Execution API Service...
  60. docker build -t baangt-api:latest api
  61. fi
  62. # running containers
  63. # Redis
  64. echo
  65. echo Starting Redis...
  66. docker run -d -p ${ports[3]}:6379 --name redis --rm redis:5-alpine
  67. # RQ Worker
  68. echo
  69. echo Starting Redis Worker...
  70. docker run -d --name rq-worker \
  71. -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]} --rm \
  72. -e DATABASE_URL=postgresql://baangt:12345@172.17.0.1:${ports[4]}/execution \
  73. -e REDIS_URL=redis://172.17.0.1:${ports[3]}/0 --entrypoint "./runservice.rq.sh" \
  74. baangt-api:latest
  75. # postgres
  76. echo
  77. echo Starting PostgreSQL container...
  78. docker run -d -p ${ports[4]}:5432 --name baangt-postgres -e POSTGRES_PASSWORD=12345 baangt-postgres:latest
  79. docker start baangt-postgres
  80. # Data Files
  81. echo
  82. echo Starting Data File Service...
  83. docker run -d -p ${ports[2]}:5000 --name baangt-file --rm baangt-file:latest
  84. # UI Service
  85. echo
  86. echo Starting UI Service...
  87. docker run -d -p ${ports[0]}:5000 --name baangt-ui \
  88. -e DATABASE_URL=postgresql://baangt:12345@172.17.0.1:${ports[4]}/definition \
  89. -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]} \
  90. -e BAANGT_API_HOST=172.17.0.1:${ports[1]} --rm baangt-ui:latest
  91. # API Service
  92. echo
  93. echo Starting Execution API Service...
  94. docker run -d -p ${ports[1]}:5000 --name baangt-api \
  95. -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]} \
  96. -e DATABASE_URL=postgresql://baangt:12345@172.17.0.1:${ports[4]}/execution \
  97. -e REDIS_URL=redis://172.17.0.1:${ports[3]}/0 --rm baangt-api:latest