Guest User

Untitled

a guest
Aug 29th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DOMAIN="www.example.xy" # set your own domain
  4. INSTANCE_NAME="appweb" # set your app name
  5. INSTANCE_PORT="1090" # set dedicated port
  6. DB_HOST="dbhost:3306" # set connection to database ...
  7. DB_USER="db_user"
  8. DB_PSWD="db_password"
  9. DB_NAME="db_schema"
  10. HTML_DIR="$(cd "$(dirname "$0")"; pwd)/html-content" # here is stoted html content
  11.  
  12. mysql-check() { mysql --protocol=TCP -u "$DB_USER" -p"$DB_PSWD" -h "${DB_HOST/:*/}" -P "$([ "${DB_HOST/*:/}" == "$DB_HOST" ] && echo 3306 || echo "${DB_HOST/*:/}")" "$@"; }
  13. fail() { echo -e "\e[91mError: $@\e[0m" >&2; exit 1; }
  14. info() { echo -e "\e[96m$@\e[0m"; }
  15. mysql-do() { mysql -e "$2" || fail "unable $1\n try: \e[93mmysql \"$2\""; }
  16. ok() { echo -e "\e[32m$@\e[0m"; }
  17.  
  18. case "$1" in
  19. install)
  20. [ -d "$HTML_DIR" ] || mkdir -v "$HTML_DIR"
  21. info "Checking database connection ..."
  22. mysql-check -BNe "select 'success';" && ok ok || {
  23. info "Trying to create access"
  24. mysql-do "create db user" "grant all privileges on $DB_NAME.* to '$DB_USER'@'%' identified by '$DB_PSWD';"
  25. mysql-check -BNe "select 'success';" && ok ok || fail "cannot connect to database"
  26. }
  27. info "Checking database schema ..."
  28. mysql-check -BNe "show tables;" "$DB_NAME" && ok ok || {
  29. info "Trying to create database"
  30. mysql-do "create schema" "create schema if not exists $DB_NAME charset utf8;"
  31. mysql-check -BNe "select 'success';" "$DB_NAME" && ok ok || fail "cannot create database"
  32. }
  33. info "Installing docker ..."
  34. docker run --detach \
  35. --hostname "$DOMAIN" \
  36. --name "$INSTANCE_NAME" \
  37. --env WORDPRESS_DB_HOST="$DB_HOST" \
  38. --env WORDPRESS_DB_USER="$DB_USER" \
  39. --env WORDPRESS_DB_PASSWORD="$DB_PSWD" \
  40. --env WORDPRESS_DB_NAME="$DB_NAME" \
  41. --publish "$INSTANCE_PORT":80 \
  42. --volume "$HTML_DIR":/var/www/html \
  43. --restart always \
  44. wordpress
  45. ;;
  46. purge)
  47. "$0" remove
  48. mysql-check -BNe "drop schema if exists $DB_NAME;"
  49. rm -vfr "$HTML_DIR"
  50. ;;
  51. remove)
  52. docker stop "$INSTANCE_NAME"
  53. docker rm "$INSTANCE_NAME"
  54. docker ps -a
  55. ;;
  56. esac
Add Comment
Please, Sign In to add comment