netgescon-day0/docker/deploy-multisite.sh

44 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DOCKER_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd "$DOCKER_DIR/.." && pwd)"
ENV_FILE="${ENV_FILE:-$DOCKER_DIR/.env.multisite}"
COMPOSE_FILE="$DOCKER_DIR/docker-compose.multisite.yml"
if command -v docker >/dev/null 2>&1; then
if docker compose version >/dev/null 2>&1; then
COMPOSE_CMD=(docker compose)
elif command -v docker-compose >/dev/null 2>&1; then
COMPOSE_CMD=(docker-compose)
else
echo "Errore: non trovo né 'docker compose' né 'docker-compose'."
exit 127
fi
elif command -v docker-compose >/dev/null 2>&1; then
COMPOSE_CMD=(docker-compose)
else
echo "Errore: Docker non installato in questa VM."
exit 127
fi
if [[ ! -f "$ENV_FILE" ]]; then
echo "Env mancante: $ENV_FILE"
echo "Crea file: cp $DOCKER_DIR/.env.multisite.example $DOCKER_DIR/.env.multisite"
exit 1
fi
echo "[1/4] Validazione compose"
"${COMPOSE_CMD[@]}" --env-file "$ENV_FILE" -f "$COMPOSE_FILE" config >/tmp/netgescon-multisite.config
echo "[2/4] Build immagine applicativa (condivisa prod+demo)"
"${COMPOSE_CMD[@]}" --env-file "$ENV_FILE" -f "$COMPOSE_FILE" build prod_app
echo "[3/4] Avvio stack"
"${COMPOSE_CMD[@]}" --env-file "$ENV_FILE" -f "$COMPOSE_FILE" up -d
echo "[4/4] Stato servizi"
"${COMPOSE_CMD[@]}" --env-file "$ENV_FILE" -f "$COMPOSE_FILE" ps
echo "Deploy completato in: $ROOT_DIR"