| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #! /bin/sh
- #
-
- if [ -f .env ]
- then
- set -o allexport;
- . ./.env;
- set +o allexport
- else
- echo Missing .env file
- exit 1
- fi
-
- echo Setting up ${DOCKER_PREFIX} volumes
- docker volume create ${DOCKER_PREFIX}-web
- docker volume create ${DOCKER_PREFIX}-db
- docker volume create wp-cli-cache
- echo Setting up ${DOCKER_PREFIX} network
- docker network create ${DOCKER_PREFIX}
-
- docker-compose up -d web
- while [ ! $(docker ps --quiet --filter name=${DOCKER_PREFIX}-web) ]
- do
- echo Waiting for the ${DOCKER_PREFIX}-web container to be up and running…
- sleep 1
- done
-
- docker-compose up -d db
- while [ ! $(docker ps -q -f name=${DOCKER_PREFIX}-db) ]
- do
- echo Waiting for the ${DOCKER_PREFIX}-db container to be up and running…
- sleep 1
- done
-
- PING_MYSQL="mysqladmin \
- ping \
- --host ${DOCKER_PREFIX}-db \
- --port 3306 \
- --protocol=tcp \
- --user=${DB_USER} \
- --password=${DB_USER_PASSWORD} \
- --silent"
- # [: mysqld: unexpected operator when not using [
- # see: https://unix.stackexchange.com/a/482059
- #while [ ! $(docker exec ${DOCKER_PREFIX}-web /bin/sh -c "${PING_MYSQL}") ]
- while ! docker exec ${DOCKER_PREFIX}-web /bin/sh -c "${PING_MYSQL}"
- do
- echo Waiting for ${DOCKER_PREFIX}-db to accept connections…
- sleep 1
- done
-
- echo Downloading WordPress core
- docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
- wp core download \
- --locale=${WP_LOCALE} \
- --path=/var/www/html \
- --version=${WP_VERSION}"
-
- echo Creating ${DOCKER_PREFIX} WordPress config
- docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c '
- wp config create \
- --dbhost='"${DOCKER_PREFIX}-db"' \
- --dbname='"${DOCKER_PREFIX}"' \
- --dbpass='"${DB_USER_PASSWORD}"' \
- --dbuser='"${DB_USER}"' \
- --force \
- --path=/var/www/html \
- --skip-check \
- --extra-php <<EXTRA-PHP
- if (isset(\$_SERVER["HTTP_X_FORWARDED_PROTO"]) && \$_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") \$_SERVER["HTTPS"]="on";
- EXTRA-PHP
- '
-
- echo Installing WordPress core
- docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
- wp core install \
- --admin_email=no@mail.com \
- --admin_password=${WP_ADMIN_PASSWORD} \
- --admin_user=${WP_ADMIN_USERNAME} \
- --path=/var/www/html \
- --skip-email \
- --title=${DOCKER_PREFIX} \
- --url=${WP_DEFAULT_PROTOCOL}://${WP_URL}"
-
- echo Installing WordPress ${WP_THEME} theme
- docker exec --user www-data ${DOCKER_PREFIX}-web /bin/sh -c "
- wp theme install ${WP_THEME} \
- --activate \
- --path=/var/www/html"
-
- echo Connect ${DOCKER_PREFIX} network to ${TRAEFIK_NETWORK_NAME}
- docker network connect ${DOCKER_PREFIX} ${TRAEFIK_NETWORK_NAME}
- docker-compose up -d adminer
|