Advertisement
funcelot

docker_deploy.sh

Jan 30th, 2020
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.44 KB | None | 0 0
  1. myfunc() {
  2.     echo "build canceled"
  3.     JSON="{\"text\":\"build canceled $BUILD_URL\"}"
  4.     curl -s -X GET https://api.telegram.org/<telegram-secret>/sendMessage?chat_id=-0 -H "Content-Type: application/json" -d "$JSON" > /dev/null
  5. }
  6.  
  7. trap 'myfunc' ERR
  8.  
  9. SRC=/srv/images
  10. SRV=/srv/build
  11. SRV_KEY=/srv/dev.server.pem
  12. SERVER=root@dev.server
  13. IMAGES=$SRV/images
  14. CONFIG=docker-compose.yml
  15.  
  16. echo "build started"
  17. JSON="{\"text\":\"build started $BUILD_URL\"}"
  18. curl -s -X GET https://api.telegram.org/<telegram-secret>/sendMessage?chat_id=-0 -H "Content-Type: application/json" -d "$JSON" > /dev/null
  19.  
  20. # copy sources
  21. tar -zcf $SRC/workspace.tar.gz -C $WORKSPACE .
  22. ssh -i $SRV_KEY $SERVER "rm -rf $SRV/server"
  23. scp -i $SRV_KEY $SRC/workspace.tar.gz $SERVER:$SRV/
  24. ssh -i $SRV_KEY $SERVER "mkdir $SRV/server; tar -C $SRV/server/ -xf $SRV/workspace.tar.gz"
  25.  
  26. # build nginx/frontend/backend/workers/mjml
  27. docker-compose -f $CONFIG --no-ansi build
  28. docker save -o $SRC/build_backend_latest.tar build_backend:latest
  29. scp -i $SRV_KEY $SRC/build_backend_latest.tar $SERVER:$IMAGES/
  30. ssh -i $SRV_KEY $SERVER "docker load -i $IMAGES/build_backend_latest.tar"
  31. docker save -o $SRC/build_frontend_latest.tar build_frontend:latest
  32. scp -i $SRV_KEY $SRC/build_frontend_latest.tar $SERVER:$IMAGES/
  33. ssh -i $SRV_KEY $SERVER "docker load -i $IMAGES/build_frontend_latest.tar"
  34. docker save -o $SRC/build_nginx_latest.tar build_nginx:latest
  35. scp -i $SRV_KEY $SRC/build_nginx_latest.tar $SERVER:$IMAGES/
  36. ssh -i $SRV_KEY $SERVER "docker load -i $IMAGES/build_nginx_latest.tar"
  37. docker save -o $SRC/liminspace_mjml_tcpserver_latest.tar liminspace/mjml-tcpserver:latest
  38. scp -i $SRV_KEY $SRC/liminspace_mjml_tcpserver_latest.tar $SERVER:$IMAGES/
  39. ssh -i $SRV_KEY $SERVER "docker load -i $IMAGES/liminspace_mjml_tcpserver_latest.tar"
  40.  
  41. # build postgist
  42. docker-compose -f postgis.yml --no-ansi build
  43. docker save -o $SRC/kartoza_postgis.tar kartoza/postgis:9.6-2.4
  44. scp -i $SRV_KEY $SRC/kartoza_postgis.tar $SERVER:$IMAGES/
  45. ssh -i $SRV_KEY $SERVER "docker load -i $IMAGES/kartoza_postgis.tar"
  46.  
  47. #start network
  48. ssh -i $SRV_KEY $SERVER "cd $SRV/server; if [ \"$(docker network ls | grep -c web)\" != \"1\" ]; then docker network create web; else echo OK; fi"
  49.  
  50. #restart postgis
  51. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose -f postgis.yml restart postgis"
  52.  
  53. #await for server up
  54. sleep 30
  55.  
  56. #start migrations
  57. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose -f $CONFIG run --rm backend python manage.py migrate --no-input"
  58.  
  59. # restart server
  60. #ssh -i $SRV_KEY $SERVER "$SRV/restart_database.sh"
  61. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose restart mjml"
  62. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose restart worker"
  63. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose restart backend"
  64. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose restart rendering"
  65. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose restart nginx"
  66. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose -f $CONFIG down"
  67. ssh -i $SRV_KEY $SERVER "cd $SRV/server; source $SRV/env.sh; docker-compose -f $CONFIG up -d"
  68.  
  69. echo "build finished"
  70. JSON="{\"text\":\"build finished $BUILD_URL\"}"
  71. curl -s -X GET https://api.telegram.org/<telegram-secret>/sendMessage?chat_id=-0 -H "Content-Type: application/json" -d "$JSON" > /dev/null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement