From 2cd09198e118aac074dec442d5a8b184b1988cd2 Mon Sep 17 00:00:00 2001 From: Ruslan Date: Tue, 14 Apr 2026 00:30:04 +0300 Subject: [PATCH] =?UTF-8?q?fix(gui):=20=D1=83=D0=B4=D0=B0=D0=BB=D1=8F?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B2=D1=81=D0=B5=20legacy=20compose=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=82=D0=B5=D0=B9=D0=BD=D0=B5=D1=80=D1=8B=20wiregu?= =?UTF-8?q?ard-ui=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20up?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++++ server/install_server.sh | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/README.md b/README.md index 4d7242d..98265fd 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,12 @@ sudo ss -tulpn | grep 5000 Если при запуске встречается ошибка `KeyError: 'ContainerConfig'` (обычно на legacy `docker-compose` v1), перезапустите установщик из актуальной версии репозитория: в нем добавлена автоматическая очистка старого контейнера `wireguard-ui` перед запуском. +Для уже сломанного состояния можно вручную очистить старые контейнеры и запустить установщик снова: +```bash +docker ps -aq --filter 'label=com.docker.compose.service=wireguard-ui' | xargs -r docker rm -f +docker ps -a --format '{{.Names}}' | grep -E '(^|[_-])wireguard-ui($|[_-])' | xargs -r docker rm -f +``` + ## Важные пути - Серверный конфиг: `/etc/wireguard/wg0.conf` diff --git a/server/install_server.sh b/server/install_server.sh index a247fc3..2129508 100755 --- a/server/install_server.sh +++ b/server/install_server.sh @@ -325,6 +325,22 @@ EOF_COMPOSE # KeyError: 'ContainerConfig'. Предварительно удаляем старый контейнер по имени. if [[ "$compose_mode" == "legacy" ]]; then docker rm -f wireguard-ui >/dev/null 2>&1 || true + + # Удаляем возможные старые контейнеры вида _wireguard-ui + # и контейнеры сервиса wireguard-ui по compose-label. + local legacy_ids legacy_names + legacy_ids="$(docker ps -aq --filter 'label=com.docker.compose.service=wireguard-ui' || true)" + if [[ -n "$legacy_ids" ]]; then + docker rm -f $legacy_ids >/dev/null 2>&1 || true + fi + + legacy_names="$(docker ps -a --format '{{.Names}}' | grep -E '(^|[_-])wireguard-ui($|[_-])' || true)" + if [[ -n "$legacy_names" ]]; then + while IFS= read -r cname; do + [[ -n "$cname" ]] || continue + docker rm -f "$cname" >/dev/null 2>&1 || true + done <<< "$legacy_names" + fi fi (cd /opt/wireguard-ui && "${compose_cmd[@]}" up -d --remove-orphans)