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.7KB

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