You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

create.sh 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #! /bin/sh
  2. #
  3. if [ -f .env ]
  4. then
  5. set -o allexport;
  6. . ./.env;
  7. set +o allexport
  8. else
  9. echo Missing .env file
  10. exit 1
  11. fi
  12. echo Setting up ${DOCKER_PREFIX} volumes
  13. docker volume create ${DOCKER_PREFIX}-web
  14. docker volume create ${DOCKER_PREFIX}-db
  15. docker volume create wp-cli-cache
  16. echo Setting up ${DOCKER_PREFIX} network
  17. docker network create ${DOCKER_PREFIX}
  18. docker-compose up -d web
  19. while [ ! $(docker ps --quiet --filter name=${DOCKER_PREFIX}-web) ]
  20. do
  21. echo Waiting for the ${DOCKER_PREFIX}-web container to be up and running…
  22. sleep 1
  23. done
  24. docker-compose up -d db
  25. while [ ! $(docker ps -q -f name=${DOCKER_PREFIX}-db) ]
  26. do
  27. echo Waiting for the ${DOCKER_PREFIX}-db container to be up and running…
  28. sleep 1
  29. done
  30. PING_MYSQL="mysqladmin \
  31. ping \
  32. --host ${DOCKER_PREFIX}-db \
  33. --port 3306 \
  34. --protocol=tcp \
  35. --user=${DB_USER} \
  36. --password=${DB_USER_PASSWORD} \
  37. --silent"
  38. while ! docker exec ${DOCKER_PREFIX}-web /bin/sh -c "${PING_MYSQL}"
  39. do
  40. echo Waiting for ${DOCKER_PREFIX}-db to accept connections…
  41. sleep 1
  42. done
  43. echo Downloading WordPress core
  44. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
  45. wp core download \
  46. --locale=${WP_LOCALE} \
  47. --path=/var/www/html \
  48. --version=${WP_VERSION}"
  49. echo Creating ${DOCKER_PREFIX} WordPress config
  50. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c '
  51. wp config create \
  52. --dbhost='"${DOCKER_PREFIX}-db"' \
  53. --dbname='"${DOCKER_PREFIX}"' \
  54. --dbpass='"${DB_USER_PASSWORD}"' \
  55. --dbuser='"${DB_USER}"' \
  56. --force \
  57. --path=/var/www/html \
  58. --skip-check \
  59. --extra-php <<EXTRA-PHP
  60. if (isset(\$_SERVER["HTTP_X_FORWARDED_PROTO"]) && \$_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") \$_SERVER["HTTPS"]="on";
  61. EXTRA-PHP
  62. '
  63. echo Installing WordPress core
  64. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
  65. wp core install \
  66. --admin_email=no@mail.com \
  67. --admin_password=${WP_ADMIN_PASSWORD} \
  68. --admin_user=${WP_ADMIN_USERNAME} \
  69. --path=/var/www/html \
  70. --skip-email \
  71. --title=${DOCKER_PREFIX} \
  72. --url=${WP_DEFAULT_PROTOCOL}://${WP_URL}"
  73. echo Installing WordPress ${WP_THEME} theme
  74. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
  75. wp theme install ${WP_THEME} \
  76. --activate \
  77. --path=/var/www/html"
  78. echo Connect ${DOCKER_PREFIX} network to ${TRAEFIK_NETWORK_NAME}
  79. docker network connect ${DOCKER_PREFIX} ${TRAEFIK_NETWORK_NAME}
  80. docker-compose up -d adminer