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.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. # weird [: mysqld: unexpected operator when using PING_MYSQL but it works
  39. while [ ! $(docker exec ${DOCKER_PREFIX}-web /bin/sh -c "${PING_MYSQL}") ]
  40. do
  41. echo Waiting for ${DOCKER_PREFIX}-db to accept connections…
  42. sleep 1
  43. done
  44. echo Downloading WordPress core
  45. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
  46. wp core download \
  47. --locale=${WP_LOCALE} \
  48. --path=/var/www/html \
  49. --version=${WP_VERSION}"
  50. echo Creating ${DOCKER_PREFIX} WordPress config
  51. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c '
  52. wp config create \
  53. --dbhost='"${DOCKER_PREFIX}-db"' \
  54. --dbname='"${DOCKER_PREFIX}"' \
  55. --dbpass='"${DB_USER_PASSWORD}"' \
  56. --dbuser='"${DB_USER}"' \
  57. --force \
  58. --path=/var/www/html \
  59. --skip-check \
  60. --extra-php <<EXTRA-PHP
  61. if (isset(\$_SERVER["HTTP_X_FORWARDED_PROTO"]) && \$_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") \$_SERVER["HTTPS"]="on";
  62. EXTRA-PHP
  63. '
  64. echo Installing WordPress core
  65. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
  66. wp core install \
  67. --admin_email=no@mail.com \
  68. --admin_password=${WP_ADMIN_PASSWORD} \
  69. --admin_user=${WP_ADMIN_USERNAME} \
  70. --path=/var/www/html \
  71. --skip-email \
  72. --title=${DOCKER_PREFIX} \
  73. --url=${WP_DEFAULT_PROTOCOL}://${WP_URL}"
  74. echo Installing WordPress ${WP_THEME} theme
  75. docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
  76. wp theme install ${WP_THEME} \
  77. --activate \
  78. --path=/var/www/html"
  79. echo Connect ${DOCKER_PREFIX} network to ${TRAEFIK_NETWORK_NAME}
  80. docker network connect ${DOCKER_PREFIX} ${TRAEFIK_NETWORK_NAME}
  81. docker-compose up -d adminer