#!/bin/bash # Define environment variables COMPOSE_FILE="docker-compose.first.yml" echo "๐Ÿš€ Starting WordPress Deployment Process..." # Step 0: **Reset Environment** - Stop and remove volumes echo "๐Ÿงน Cleaning up existing containers and volumes..." docker compose down -v # Step 1: Build custom WordPress image echo "๐Ÿ”ง Building custom WordPress image..." docker compose -f "$COMPOSE_FILE" build # Step 2: Install or upgrade WordPress volume echo "๐Ÿ“ฆ Installing or upgrading WordPress volume..." docker compose -f "$COMPOSE_FILE" up -d # Step 3: Stop WordPress container (keep HTML volume) echo "โน๏ธ Stopping WordPress container (keeping data)..." docker compose -f "$COMPOSE_FILE" down # Step 4: Start production environment echo "๐Ÿš€ Launching production environment..." docker compose up -d # Step 5: Source .env and extract the first VIRTUAL_HOST address if [ -f .env ]; then set -o allexport source .env set +o allexport # Extract only the first address from VIRTUAL_HOST FIRST_VIRTUAL_HOST=$(echo "$VIRTUAL_HOST" | cut -d',' -f1) echo "โœ… WordPress deployment complete! Site is live at: https://${FIRST_VIRTUAL_HOST}" else echo "โš ๏ธ .env file not found, VIRTUAL_HOST could not be displayed." fi # Step 6: Copy new WordPress content after deployment echo "๐Ÿ“‚ Copying new WordPress content to wp-content..." docker compose exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "cp -a /var/www/html/wp-content-new/* /var/www/html/wp-content/" echo "โœ… WordPress content successfully copied!"