From 8887ed2c62e6d2bfff159db7d1b7d99019189018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Fri, 26 Sep 2025 22:46:23 +0200 Subject: [PATCH] multidb --- deploy.sh | 57 ++++++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/deploy.sh b/deploy.sh index e455690..978f806 100755 --- a/deploy.sh +++ b/deploy.sh @@ -15,32 +15,17 @@ 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)}" -# Domyślny profil i usługi -DB_PROFILE="sqlite" # domyślnie sqlite, czyli brak profilu pgsql/mysql -SERVICES=() +# Domyślny profil +PROFILE="${1:-sqlite}" -# Tworzenie katalogów danych dla baz jeśli brak -if [[ "$DB_PROFILE" == "pgsql" ]]; then - if [[ ! -d "./db/pgsql" ]]; then - log "Tworzę katalog ./db/pgsql dla danych PostgreSQL" - mkdir -p ./db/pgsql - fi -elif [[ "$DB_PROFILE" == "mysql" ]]; then - if [[ ! -d "./db/mysql" ]]; then - log "Tworzę katalog ./db/mysql dla danych MySQL" - mkdir -p ./db/mysql - fi +if [[ "$PROFILE" != "pgsql" && "$PROFILE" != "mysql" && "$PROFILE" != "sqlite" ]]; then + echo "Użycie: $0 {pgsql|mysql|sqlite}" + exit 1 fi -# Przetwarzanie argumentów -if [[ $# -gt 0 ]]; then - case "$1" in - pgsql|mysql|sqlite) - DB_PROFILE="$1" - shift - ;; - esac - SERVICES=("$@") +SERVICES=() +if [[ $# -gt 1 ]]; then + SERVICES=("${@:2}") fi log() { printf "\n==> %s\n" "$*"; } @@ -77,21 +62,25 @@ docker compose -f "$COMPOSE_FILE" down --remove-orphans log "Generowanie default.vcl z APP_PORT=$APP_PORT" envsubst < deploy/varnish/default.vcl.template > deploy/varnish/default.vcl -# 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 - PROFILE_OPT="" +# Tworzenie katalogów danych dla baz jeśli brak +if [[ "$PROFILE" == "pgsql" ]]; then + if [[ ! -d "./db/pgsql" ]]; then + log "Tworzę katalog ./db/pgsql dla danych PostgreSQL" + mkdir -p ./db/pgsql + fi +elif [[ "$PROFILE" == "mysql" ]]; then + if [[ ! -d "./db/mysql" ]]; then + log "Tworzę katalog ./db/mysql dla danych MySQL" + mkdir -p ./db/mysql + fi fi +log "Docker Compose UP (build bez deps) dla profilu: $PROFILE i serwisów: ${SERVICES[*]:-(wszystkie)}" + if [[ ${#SERVICES[@]} -gt 0 ]]; then - docker compose -f "$COMPOSE_FILE" up -d --no-deps --build $PROFILE_OPT "${SERVICES[@]}" + DB_ENGINE="$PROFILE" docker compose -f "$COMPOSE_FILE" --profile "$PROFILE" up -d --no-deps --build "${SERVICES[@]}" else - docker compose -f "$COMPOSE_FILE" up -d --no-deps --build $PROFILE_OPT + DB_ENGINE="$PROFILE" docker compose -f "$COMPOSE_FILE" --profile "$PROFILE" up -d --no-deps --build fi log "Gotowe ✅ (wersja: $(cat version.txt))"