ComposePress/wp-rocket-launch.sh

51 lines
1.9 KiB
Bash
Executable File

#!/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 and correct permissions..."
docker compose exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "cp -a /var/www/html/wp-content-new/* /var/www/html/wp-content/"
docker compose exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "/usr/bin/find /var/www/html/wp-content -type d -exec chmod 755 {} \; -o -type f -exec chmod 644 {} \;"
echo "✅ WordPress content successfully copied!"
# Step 7: Shuffle salts
echo "📂 Shuffle the salt keys...."
docker compose exec wpcli_${COMPOSE_PROJECT_NAME} wp config shuffle-salts
echo "✅ Wordpress salt keys sucessfully shuffled!"