fix: support docker compose v1/v2 in install and update scripts
This commit is contained in:
+35
-2
@@ -19,6 +19,36 @@ NC='\033[0m'
|
||||
log() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
||||
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||||
error() { echo -e "${RED}[ERROR]${NC} $1"; exit 1; }
|
||||
die() { error "$1"; }
|
||||
|
||||
resolve_compose_cmd() {
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
COMPOSE_CMD=("docker" "compose")
|
||||
return 0
|
||||
fi
|
||||
|
||||
if command -v docker-compose >/dev/null 2>&1; then
|
||||
COMPOSE_CMD=("docker-compose")
|
||||
return 0
|
||||
fi
|
||||
|
||||
warn "Не найден Docker Compose (ни v2 plugin, ни v1 binary). Пытаемся установить..."
|
||||
apt-get update
|
||||
apt-get install -y docker-compose-plugin || true
|
||||
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
COMPOSE_CMD=("docker" "compose")
|
||||
return 0
|
||||
fi
|
||||
|
||||
apt-get install -y docker-compose || true
|
||||
if command -v docker-compose >/dev/null 2>&1; then
|
||||
COMPOSE_CMD=("docker-compose")
|
||||
return 0
|
||||
fi
|
||||
|
||||
die "Не удалось установить Docker Compose. Установите docker compose plugin (v2) или docker-compose (v1)."
|
||||
}
|
||||
|
||||
#################################
|
||||
# ASCII-баннер
|
||||
@@ -101,6 +131,9 @@ EOF
|
||||
systemctl start docker
|
||||
fi
|
||||
|
||||
resolve_compose_cmd
|
||||
log "Compose команда: ${COMPOSE_CMD[*]}"
|
||||
|
||||
#################################
|
||||
# ЗАГРУЗКА ПРОЕКТА
|
||||
#################################
|
||||
@@ -477,10 +510,10 @@ fi
|
||||
#################################
|
||||
log "Сборка и запуск контейнеров..."
|
||||
# Останавливаем старые, если были
|
||||
docker compose down || true
|
||||
"${COMPOSE_CMD[@]}" down || true
|
||||
|
||||
# Запускаем сборку и старт
|
||||
docker compose up --build -d --remove-orphans
|
||||
"${COMPOSE_CMD[@]}" up --build -d --remove-orphans
|
||||
|
||||
log "Очистка кэша сборки..."
|
||||
docker image prune -f
|
||||
|
||||
@@ -13,6 +13,20 @@ log() { echo -e "\033[1;32m[INFO]\033[0m $1"; }
|
||||
warn() { echo -e "\033[1;33m[WARN]\033[0m $1"; }
|
||||
die() { echo -e "\033[1;31m[ERROR]\033[0m $1"; exit 1; }
|
||||
|
||||
resolve_compose_cmd() {
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
COMPOSE_CMD=("docker" "compose")
|
||||
return 0
|
||||
fi
|
||||
|
||||
if command -v docker-compose >/dev/null 2>&1; then
|
||||
COMPOSE_CMD=("docker-compose")
|
||||
return 0
|
||||
fi
|
||||
|
||||
die "Не найден Docker Compose (ни v2 plugin, ни v1 binary)"
|
||||
}
|
||||
|
||||
need_root() {
|
||||
[[ $EUID -eq 0 ]] || die "Запускать только от root"
|
||||
}
|
||||
@@ -37,20 +51,21 @@ cd "$PROJECT_DIR"
|
||||
# CHECK DOCKER
|
||||
#################################
|
||||
command -v docker >/dev/null 2>&1 || die "Docker не установлен"
|
||||
docker compose version >/dev/null 2>&1 || die "docker compose v2 недоступен"
|
||||
resolve_compose_cmd
|
||||
log "Compose команда: ${COMPOSE_CMD[*]}"
|
||||
|
||||
#################################
|
||||
# REBUILD BACKEND
|
||||
#################################
|
||||
log "Скачивание последних версий Docker-образов..."
|
||||
if docker compose pull; then
|
||||
if "${COMPOSE_CMD[@]}" pull; then
|
||||
log "Образы успешно загружены."
|
||||
else
|
||||
error "Ошибка при скачивании образов. Проверьте подключение к интернету или доступность GitHub Container Registry."
|
||||
die "Ошибка при скачивании образов. Проверьте подключение к интернету или доступность GitHub Container Registry."
|
||||
fi
|
||||
|
||||
log "Пересоздание контейнеров..."
|
||||
docker compose up -d
|
||||
"${COMPOSE_CMD[@]}" up -d
|
||||
|
||||
log "Очистка старых Docker-образов (освобождение места)..."
|
||||
docker image prune -f
|
||||
@@ -58,4 +73,4 @@ docker image prune -f
|
||||
#################################
|
||||
# DONE
|
||||
#################################
|
||||
log "3dp-manager успешно обновлён ✅"
|
||||
log "3dp-manager успешно обновлён ✅"
|
||||
|
||||
Reference in New Issue
Block a user