#!/usr/bin/env bash set -euo pipefail REPO_DIR="$(cd "$(dirname "$0")" && pwd)" WEB_STATIC="/var/www/html/Pimco-charts/static" cd "$REPO_DIR" # 1. Pull latest code git pull origin main # 2. Build Docker image (uses cache) docker compose build # 3. Start/restart container docker compose up -d --remove-orphans # 4. Prune dangling images docker image prune -f # 5. Copy static files to web directory mkdir -p "$WEB_STATIC" rm -rf "$WEB_STATIC"/* cp -r "$REPO_DIR/app/static/." "$WEB_STATIC/" # 6. Wait for health echo "Waiting for container to become healthy..." for i in $(seq 1 12); do STATUS=$(docker inspect --format='{{.State.Health.Status}}' pimco-charts 2>/dev/null || echo "starting") [ "$STATUS" = "healthy" ] && echo "Healthy." && break echo " [$i/12] status=$STATUS, waiting 5s..." sleep 5 done echo "=== Deploy complete. App running on 127.0.0.1:8569 ===" echo "Configure Apache to proxy /Pimco-charts/ -> http://127.0.0.1:8569/" echo "Static files served from: $WEB_STATIC" echo "" echo "Apache config snippet:" echo " ProxyPass /Pimco-charts/static/ !" echo " ProxyPass /Pimco-charts/ http://127.0.0.1:8569/" echo " ProxyPassReverse /Pimco-charts/ http://127.0.0.1:8569/" echo " Alias /Pimco-charts/static/ $WEB_STATIC/" echo " " echo " Require all granted" echo " "