multidb support
This commit is contained in:
48
deploy.sh
48
deploy.sh
@@ -10,23 +10,30 @@ fi
|
||||
|
||||
APP_PORT="${APP_PORT:-8080}"
|
||||
|
||||
|
||||
# === Konfiguracja (możesz nadpisać zmiennymi środowiskowymi) ===
|
||||
REPO_DIR="${REPO_DIR:-$(pwd)}"
|
||||
COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}" # albo compose.yaml
|
||||
COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}"
|
||||
GIT_REMOTE="${GIT_REMOTE:-origin}"
|
||||
GIT_BRANCH="${GIT_BRANCH:-$(git -C "$REPO_DIR" rev-parse --abbrev-ref HEAD 2>/dev/null || echo main)}"
|
||||
|
||||
# Jeśli chcesz uruchomić tylko wybrane serwisy, podaj je po komendzie,
|
||||
# np.: ./deploy.sh web api
|
||||
SERVICES=("$@")
|
||||
# Domyślny profil i usługi
|
||||
DB_PROFILE="sqlite" # domyślnie sqlite, czyli brak profilu pgsql/mysql
|
||||
SERVICES=()
|
||||
|
||||
# Przetwarzanie argumentów
|
||||
if [[ $# -gt 0 ]]; then
|
||||
case "$1" in
|
||||
pgsql|mysql|sqlite)
|
||||
DB_PROFILE="$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
SERVICES=("$@")
|
||||
fi
|
||||
|
||||
log() { printf "\n==> %s\n" "$*"; }
|
||||
|
||||
# --- Kontrole wstępne ---
|
||||
command -v git >/dev/null || { echo "Brak 'git' w PATH"; exit 1; }
|
||||
command -v docker >/dev/null || { echo "Brak 'docker' w PATH"; exit 1; }
|
||||
|
||||
if ! docker compose version >/dev/null 2>&1; then
|
||||
echo "Wymagany jest 'docker compose' (plugin), nie stary 'docker-compose'."
|
||||
exit 1
|
||||
@@ -41,34 +48,37 @@ if [[ ! -f "$REPO_DIR/$COMPOSE_FILE" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# --- Praca w katalogu repo ---
|
||||
cd "$REPO_DIR"
|
||||
|
||||
# --- Aktualizacja kodu ---
|
||||
log "Aktualizacja repo: git pull --ff-only ($GIT_REMOTE/$GIT_BRANCH)"
|
||||
git fetch --prune "$GIT_REMOTE"
|
||||
git checkout "$GIT_BRANCH" >/dev/null 2>&1 || true
|
||||
git pull --ff-only "$GIT_REMOTE" "$GIT_BRANCH"
|
||||
|
||||
# --- Zapisanie wersji do pliku ---
|
||||
log "Zapisywanie hasha commita do version.txt"
|
||||
git rev-parse --short HEAD > version.txt
|
||||
|
||||
# --- Zatrzymanie i usunięcie bieżącego stacka ---
|
||||
log "Docker Compose DOWN (usuwanie kontenerów i osieroconych usług)"
|
||||
docker compose -f "$COMPOSE_FILE" down --remove-orphans
|
||||
|
||||
|
||||
# --- Generowanie default.vcl z szablonu ---
|
||||
log "Generowanie default.vcl z APP_PORT=$APP_PORT"
|
||||
envsubst < deploy/varnish/default.vcl.template > deploy/varnish/default.vcl
|
||||
|
||||
# --- Budowanie i uruchamianie bez restartu zależności ---
|
||||
log "Docker Compose UP (build bez deps) dla: ${SERVICES[*]:-(wszystkie)}"
|
||||
if [[ ${#SERVICES[@]} -gt 0 ]]; then
|
||||
docker compose -f "$COMPOSE_FILE" up -d --no-deps --build "${SERVICES[@]}"
|
||||
# Budowanie i uruchamianie
|
||||
log "Docker Compose UP (build bez deps) dla profilu: $DB_PROFILE i serwisów: ${SERVICES[*]:-(wszystkie)}"
|
||||
|
||||
if [[ "$DB_PROFILE" == "pgsql" ]]; then
|
||||
PROFILE_OPT="--profile pgsql"
|
||||
elif [[ "$DB_PROFILE" == "mysql" ]]; then
|
||||
PROFILE_OPT="--profile mysql"
|
||||
else
|
||||
docker compose -f "$COMPOSE_FILE" up -d --no-deps --build
|
||||
PROFILE_OPT=""
|
||||
fi
|
||||
|
||||
if [[ ${#SERVICES[@]} -gt 0 ]]; then
|
||||
docker compose -f "$COMPOSE_FILE" up -d --no-deps --build $PROFILE_OPT "${SERVICES[@]}"
|
||||
else
|
||||
docker compose -f "$COMPOSE_FILE" up -d --no-deps --build $PROFILE_OPT
|
||||
fi
|
||||
|
||||
log "Gotowe ✅ (wersja: $(cat version.txt))"
|
||||
|
Reference in New Issue
Block a user