mirror of
https://github.com/andrey271192/amnezia-web-pro-deploy.git
synced 2026-09-20 13:50:06 +00:00
fix: require docker compose v2; reject legacy docker-compose 1.x
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,7 +4,10 @@
|
||||
|
||||
## Требования
|
||||
|
||||
- VPS с **Docker** и **Docker Compose v2** (`docker compose`), **curl**, при первой установке — **git**
|
||||
- VPS с **Docker** и **Docker Compose v2** — команда **`docker compose`** (плагин `docker-compose-plugin`).
|
||||
**Не подходит** старый **`docker-compose`** 1.x из Ubuntu — на новых образах будет ошибка **`ContainerConfig` / KeyError**.
|
||||
- Установка плагина: `sudo apt-get update && sudo apt-get install -y docker-compose-plugin`
|
||||
- Также нужны **curl** и при первой установке — **git**
|
||||
- Активная подписка и **ключ** (GitHub PAT с `read:packages`), см. закрытый пост Boosty
|
||||
|
||||
## Одна команда — FREE → PRO (спросит только ключ)
|
||||
|
||||
@@ -13,10 +13,13 @@
|
||||
На VPS установите Docker и Compose v2, затем выполните **от root**:
|
||||
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get install -y curl git
|
||||
sudo apt-get update && sudo apt-get install -y curl git docker-compose-plugin
|
||||
docker compose version
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo bash
|
||||
```
|
||||
|
||||
Нужен именно **`docker compose`** (плагин v2). Старый пакет **`docker-compose`** 1.x из Ubuntu ломает установку (**ContainerConfig**).
|
||||
|
||||
Установщик **снимает FREE-панель** (типовой `amnezia_web`: контейнеры `amnezia-admin`, лендинг, образы и `/opt/amnezia-admin`). **Контейнер AmneziaWG/VPN не удаляется.** Затем ставится PRO и запрашивается ключ ниже.
|
||||
|
||||
Если FREE оставить нельзя по ошибке (редко): `SKIP_REMOVE_FREE=1 curl … | sudo -E bash`.
|
||||
|
||||
@@ -40,6 +40,16 @@ if ! docker info >/dev/null 2>&1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! docker compose version >/dev/null 2>&1; then
|
||||
echo "Ошибка: нужен Docker Compose v2 — команда «docker compose»." >&2
|
||||
echo "Старый «docker-compose» 1.x из apt даёт ошибку ContainerConfig на новых образах." >&2
|
||||
echo "" >&2
|
||||
echo "Установите плагин и повторите:" >&2
|
||||
echo " sudo apt-get update && sudo apt-get install -y docker-compose-plugin" >&2
|
||||
echo " docker compose version" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Снимаем FREE-панель (amnezia_web / install.sh): контейнеры + локальный образ + каталог сборки.
|
||||
# VPN/AWG контейнеры (amnezia-awg, amnezia-awg2 и т.д.) не останавливаем.
|
||||
remove_free_amnezia_web_panel() {
|
||||
|
||||
@@ -24,22 +24,23 @@ need_docker() {
|
||||
}
|
||||
}
|
||||
|
||||
need_compose() {
|
||||
# Не используем legacy docker-compose 1.x (Python): KeyError ContainerConfig на новых образах.
|
||||
need_compose_v2() {
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
COMPOSE=(docker compose)
|
||||
return
|
||||
return 0
|
||||
fi
|
||||
if command -v docker-compose >/dev/null 2>&1; then
|
||||
COMPOSE=(docker-compose)
|
||||
return
|
||||
fi
|
||||
echo "Нужен Docker Compose v2 (docker compose)."
|
||||
echo "Ошибка: нужен Docker Compose v2 — команда «docker compose», не старый «docker-compose» 1.x из apt." >&2
|
||||
echo "" >&2
|
||||
echo "Установка плагина (Ubuntu/Debian):" >&2
|
||||
echo " sudo apt-get update && sudo apt-get install -y docker-compose-plugin" >&2
|
||||
echo "Проверка: docker compose version" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
need_root
|
||||
need_docker
|
||||
need_compose
|
||||
need_compose_v2
|
||||
|
||||
if [[ ! -f "${ENV_FILE}" ]]; then
|
||||
echo "Создайте файл .env из .env.example и вставьте GHCR_* из закрытого поста Boosty:"
|
||||
|
||||
@@ -11,10 +11,9 @@ fi
|
||||
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
COMPOSE=(docker compose)
|
||||
elif command -v docker-compose >/dev/null 2>&1; then
|
||||
COMPOSE=(docker-compose)
|
||||
else
|
||||
echo "Нужен docker compose."
|
||||
echo "Ошибка: нужен Docker Compose v2 («docker compose»). Старый docker-compose 1.x не поддерживается." >&2
|
||||
echo " sudo apt-get update && sudo apt-get install -y docker-compose-plugin" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user