From 248d1dcd84bcb0fe6bd7576995944e0f7ad444cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Thu, 28 Aug 2025 11:33:42 +0200 Subject: [PATCH] pozycja stopki fix --- deploy.sh | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 deploy.sh diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..9ee7738 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +set -euo pipefail + +# === Konfiguracja (możesz nadpisać zmiennymi środowiskowymi) === +REPO_DIR="${REPO_DIR:-$(pwd)}" +COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}" # albo compose.yaml +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=("$@") + +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 +fi + +if [[ ! -f "$REPO_DIR/$COMPOSE_FILE" ]]; then + # Spróbuj alternatywnej nazwy + if [[ -f "$REPO_DIR/compose.yaml" ]]; then + COMPOSE_FILE="compose.yaml" + else + echo "Nie znaleziono pliku Compose w: $REPO_DIR/$COMPOSE_FILE" + exit 1 + 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" + +# --- 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 + +# --- 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[@]}" +else + docker compose -f "$COMPOSE_FILE" up -d --no-deps --build +fi + +log "Gotowe ✅"