您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

create.sh 2.7KB

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