52 lines
1.5 KiB
Bash
52 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# File: scripts/rollback.sh
|
|
# LCBP3-DMS Rollback Script
|
|
# v1.8.1
|
|
|
|
set -e
|
|
|
|
LCBP3_DIR="/volume1/lcbp3"
|
|
CURRENT_FILE="$LCBP3_DIR/current"
|
|
CURRENT=$(cat "$CURRENT_FILE")
|
|
PREVIOUS=$([[ "$CURRENT" == "blue" ]] && echo "green" || echo "blue")
|
|
|
|
echo "========================================="
|
|
echo "LCBP3-DMS Rollback (v1.8.1)"
|
|
echo "========================================="
|
|
echo "Current: $CURRENT"
|
|
echo "Rolling back to: $PREVIOUS"
|
|
echo "========================================="
|
|
|
|
# Switch NGINX back
|
|
echo "[1/3] Switching NGINX to $PREVIOUS..."
|
|
NGINX_CONF="$LCBP3_DIR/nginx-proxy/nginx.conf"
|
|
if [ -f "$NGINX_CONF" ]; then
|
|
sed -i "s/lcbp3-${CURRENT}-backend/lcbp3-${PREVIOUS}-backend/g" "$NGINX_CONF"
|
|
sed -i "s/lcbp3-${CURRENT}-frontend/lcbp3-${PREVIOUS}-frontend/g" "$NGINX_CONF"
|
|
docker exec lcbp3-nginx nginx -s reload
|
|
echo "✓ NGINX switched back to $PREVIOUS"
|
|
fi
|
|
|
|
# Start previous environment if stopped
|
|
echo "[2/3] Ensuring $PREVIOUS environment is running..."
|
|
cd "$LCBP3_DIR/$PREVIOUS"
|
|
docker-compose up -d
|
|
sleep 15
|
|
echo "✓ $PREVIOUS environment is running"
|
|
|
|
# Verify
|
|
echo "[3/3] Verifying rollback..."
|
|
if docker exec lcbp3-nginx curl -f -k http://lcbp3-${PREVIOUS}-backend:3000/health > /dev/null 2>&1; then
|
|
echo "✓ Rollback successful"
|
|
echo "$PREVIOUS" > "$CURRENT_FILE"
|
|
else
|
|
echo "✗ Rollback verification failed!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "========================================="
|
|
echo "✓ Rollback completed"
|
|
echo "Active environment: $PREVIOUS"
|
|
echo "========================================="
|