Преглед изворни кода

Исправлены две критичные проблемы деплоя

1. Добавлена проверка прав доступа к docker + автодобавление в группу docker
2. deploy() теперь использует --env-file для загрузки переменных (включая DOMAIN)
3. Если нет прав на docker — скрипт добавит пользователя в группу и попросит перезапустить
neyrogovnarik пре 1 месец
родитељ
комит
756b45043e
1 измењених фајлова са 21 додато и 3 уклоњено
  1. 21 3
      deploy/deploy-remote.sh

+ 21 - 3
deploy/deploy-remote.sh

@@ -35,7 +35,7 @@ log_info "Сервер: $(hostname) ($(hostname -I | awk '{print $1}'))"
 log_info "Пользователь: $(whoami)"
 log_info "Директория: $PROJECT_DIR"
 
-# 1. Проверка зависимостей
+# 1. Проверка зависимостей и прав доступа
 check_deps() {
     log_info "Проверка зависимостей..."
     local missing=()
@@ -53,7 +53,20 @@ check_deps() {
         log_info "Установите: sudo apt update && sudo apt install -y docker.io docker-compose-plugin git curl openssl"
         exit 1
     fi
-    log_ok "Все зависимости установлены"
+
+    # Проверка прав доступа к docker
+    if ! docker info >/dev/null 2>&1; then
+        log_warn "Нет доступа к docker daemon. Пытаюсь добавить пользователя в группу docker..."
+        if sudo usermod -aG docker "$(whoami)" 2>/dev/null; then
+            log_ok "Пользователь добавлен в группу docker. Перезапустите скрипт или выполните: newgrp docker"
+            log_warn "Выполните: newgrp docker && bash $0"
+            exit 0
+        else
+            log_err "Не удалось добавить в группу docker. Запустите от sudo или настройте права вручную."
+            exit 1
+        fi
+    fi
+    log_ok "Все зависимости установлены, права доступа к docker OK"
 }
 
 # 2. Клонирование/обновление репозитория
@@ -226,7 +239,12 @@ create_docker_secrets() {
 deploy() {
     log_info "Запуск docker compose..."
     cd "$PROJECT_DIR"
-    docker compose -f deploy/docker-compose.prod.yml up -d --build --remove-orphans
+    # Загружаем переменные окружения для docker compose
+    if [ -f "$ENV_FILE" ]; then
+        docker compose --env-file "$ENV_FILE" -f deploy/docker-compose.prod.yml up -d --build --remove-orphans
+    else
+        docker compose -f deploy/docker-compose.prod.yml up -d --build --remove-orphans
+    fi
     log_ok "Контейнеры запущены"
 }