fix(gui): обработка KeyError ContainerConfig для legacy docker-compose

This commit is contained in:
Ruslan
2026-04-14 00:29:03 +03:00
parent d6c3a0977d
commit 3ee7406969
2 changed files with 12 additions and 1 deletions

View File

@@ -310,15 +310,24 @@ EOF_COMPOSE
systemd_enable_now docker.service
local compose_cmd=()
local compose_mode=""
if docker compose version >/dev/null 2>&1; then
compose_cmd=(docker compose)
compose_mode="plugin"
elif command -v docker-compose >/dev/null 2>&1; then
compose_cmd=(docker-compose)
compose_mode="legacy"
else
die "Не найден docker compose. Установите docker-compose-plugin или docker-compose."
fi
(cd /opt/wireguard-ui && "${compose_cmd[@]}" up -d)
# На некоторых системах с legacy docker-compose (v1) при recreate может возникать
# KeyError: 'ContainerConfig'. Предварительно удаляем старый контейнер по имени.
if [[ "$compose_mode" == "legacy" ]]; then
docker rm -f wireguard-ui >/dev/null 2>&1 || true
fi
(cd /opt/wireguard-ui && "${compose_cmd[@]}" up -d --remove-orphans)
log_success "GUI wireguard-ui запущен"
}