From 3ee7406969d67743b2d8305da9654a2294b603c6 Mon Sep 17 00:00:00 2001 From: Ruslan Date: Tue, 14 Apr 2026 00:29:03 +0300 Subject: [PATCH] =?UTF-8?q?fix(gui):=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20KeyError=20ContainerConfig=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20legacy=20docker-compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ server/install_server.sh | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6eb42c2..4d7242d 100644 --- a/README.md +++ b/README.md @@ -279,6 +279,8 @@ sudo docker logs wireguard-ui --tail=100 sudo ss -tulpn | grep 5000 ``` +Если при запуске встречается ошибка `KeyError: 'ContainerConfig'` (обычно на legacy `docker-compose` v1), перезапустите установщик из актуальной версии репозитория: в нем добавлена автоматическая очистка старого контейнера `wireguard-ui` перед запуском. + ## Важные пути - Серверный конфиг: `/etc/wireguard/wg0.conf` diff --git a/server/install_server.sh b/server/install_server.sh index c5dae44..a247fc3 100755 --- a/server/install_server.sh +++ b/server/install_server.sh @@ -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 запущен" }