Env var to choose compose command, updated rocket and README with change.

This commit is contained in:
Jonathan Rosenbaum 2025-12-21 23:06:53 +00:00
parent fc59ec3ca3
commit b80768e047
3 changed files with 39 additions and 29 deletions

View File

@ -6,11 +6,12 @@ ComposePress is a **Docker-based toolkit** designed to streamline WordPress upgr
## 🚀 Project Configuration
### **Project Name & WordPress Version**
### **Project Name & WordPress Version & Compose Command**
Define a **unique project name** and **WordPress version** in the `.env` file:
```bash
COMPOSE_PROJECT_NAME=test
WORDPRESS_VERSION=6-fpm
COMPOSE_COMMAND=podman-compose
```
---
@ -26,10 +27,15 @@ IMAGE_DATABASE=mariadb:11.5
### **Let's Encrypt Configuration**
```bash
VIRTUAL_HOST=test.test.org
LETSENCRYPT_HOST=test.test.org
VIRTUAL_HOST=podman.test.org
LETSENCRYPT_HOST=podman.test.org
LETSENCRYPT_EMAIL=test@test.com
LETSENCRYPT_TEST=true
HTTPS_METHOD=noredirect
# redirect (default) - Redirects HTTP requests to HTTPS via HSTS.
# noredirect - Does not redirect HTTP requests to HTTPS. (e.g. https://podman.test.com:8080)
# nohttp - Disables the non-SSL site entirely. HTTP requests will get an error.
```
### **Database Configuration**

View File

@ -83,6 +83,7 @@ services:
- ./nginx.conf:/etc/nginx/nginx.conf
environment:
- VIRTUAL_HOST=${VIRTUAL_HOST:-wordpress}
- HTTPS_METHOD=${HTTPS_METHOD:-noredirect}
- LETSENCRYPT_HOST=${LETSENCRYPT_HOST:-wordpress}
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL:-me}
- LETSENCRYPT_TEST=${LETSENCRYPT_TEST:-true}

View File

@ -3,34 +3,37 @@
# 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
# Source .env if it exists
if [ -f .env ]; then
set -o allexport
source .env
set +o allexport
fi
echo "🚀 Starting WordPress Deployment Process..."
# Step 0: **Reset Environment** - Stop and remove volumes
echo "🧹 Cleaning up existing containers and volumes..."
${COMPOSE_COMMAND:-podman-compose} down -v
# Step 1: Build custom WordPress image
echo "🔧 Building custom WordPress image..."
${COMPOSE_COMMAND:-podman-compose} -f "$COMPOSE_FILE" build
# Step 2: Install or upgrade WordPress volume
echo "📦 Installing or upgrading WordPress volume..."
${COMPOSE_COMMAND:-podman-compose} -f "$COMPOSE_FILE" up -d
# Step 3: Stop WordPress container (keep HTML volume)
echo "⏹️ Stopping WordPress container (keeping data)..."
${COMPOSE_COMMAND:-podman-compose} -f "$COMPOSE_FILE" down
# Step 4: Start production environment
echo "🚀 Launching production environment..."
${COMPOSE_COMMAND:-podman-compose} up -d
# Step 5: Extract the first VIRTUAL_HOST address
if [ -f .env ]; then
# Extract only the first address from VIRTUAL_HOST
FIRST_VIRTUAL_HOST=$(echo "$VIRTUAL_HOST" | cut -d',' -f1)
@ -41,11 +44,11 @@ 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 {} \;"
${COMPOSE_COMMAND:-podman-compose} exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "cp -a /var/www/html/wp-content-new/* /var/www/html/wp-content/"
${COMPOSE_COMMAND:-podman-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
${COMPOSE_COMMAND:-podman-compose} exec wpcli_${COMPOSE_PROJECT_NAME} wp config shuffle-salts
echo "✅ Wordpress salt keys sucessfully shuffled!"