Files
4server/app/sbin/restartAll
T

44 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
DB_PATH="/4server/data/contracts.db"
COMPOSE_FILE="/4server/docker-compose.yml"
START_CONTAINER="/4server/sbin/startContainer"
echo "$(date '+%Y-%m-%d %H:%M:%S') Stopping and removing all Docker containers..."
# Remove all containers, including running containers
containers=$(doas docker ps -a -q)
if [ -n "$containers" ]; then
doas docker rm -f $containers
else
echo "No containers to remove."
fi
echo "$(date '+%Y-%m-%d %H:%M:%S') Starting infrastructure..."
# Start infrastructure
doas docker compose -f "$COMPOSE_FILE" up -d
echo "$(date '+%Y-%m-%d %H:%M:%S') Infrastructure started."
# Get all non-expired container UUIDs
echo "$(date '+%Y-%m-%d %H:%M:%S') Loading active containers from database..."
uuids=$(sqlite3 "$DB_PATH" "
SELECT UUID
FROM containers
WHERE expires > date('now');
")
# Start each active container
for uuid in $uuids; do
echo "$(date '+%Y-%m-%d %H:%M:%S') Starting $uuid"
"$START_CONTAINER" "$uuid"
done
echo "$(date '+%Y-%m-%d %H:%M:%S') Restart complete."