3.7 KiB
Design — icq-fix-prosody-network
Итоговая команда
cd /opt/icq && docker compose up -d --force-recreate prosody
Docker compose пересоздаст контейнер icq-prosody из того же образа
(gitea.nixg.ru/hermes/icq-prosody:13.0) с теми же volume'ами и подключит его
к сети icq_default (как указано в docker-compose.yml). После этого webchat
и slidgram снова видят prosody по имени icq-prosody.
Образ не меняется (config-hash из inspect = 6523667b1cb848380db7b2b77c15d3d1d0beeb303c8d03de2646699012672f85 —
тот же compose-проект icq). Данные на volume'ах ./data, ./config, ./certs,
./modules, ./logs — не затрагиваются.
Порядок
- Снимок состояния ДО (для сравнения):
docker ps --format '{{.Names}} {{.Networks}}'— зафиксировать пустую сеть у prosody.docker network inspect icq_default— зафиксировать состав (webchat, slidgram).
- Пересоздание:
cd /opt/icq && docker compose up -d --force-recreate prosody- дождаться
Startedи статусаUp.
- Проверка сети (изнутри compose):
docker ps --format '{{.Names}} {{.Networks}}'→ prosody в icq_default.docker network inspect icq_default→ prosody с IP.docker exec icq-prosody hostname -i→ непустой IP.docker exec icq-webchat getent hosts icq-prosody→ резолвится в 172.27.0.x.
- Проверка приложения:
curl -iк BOSH/WS через nginx/Caddy на 5280, проверить, что веб-клиент получает ответ (VirtualHost nixg.ru + consider_websocket_secure=true уже в конфиге).docker logs icq-prosody --tail 100— нет новых ошибок, компонент telegram.nixg.ru аутентифицирован.docker logs icq-webchat --tail 50— nginx отдаёт страницу без ошибок.docker logs icq-slidgram --tail 50— мост без ошибок аутентификации.
- Проверка снаружи:
curl -i https://chat.nixg.ru/через Caddy → 200.- WS:
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" ...на wss://xmpp.nixg.ru (или через браузер/логи) → HTTP 101.
Откат
Если после пересоздания что-то пошло не так (маловероятно — конфиг/образ не менялись):
cd /opt/icq && docker compose up -d # повторное создание без force
# или, если совсем плохо:
docker start icq-prosody # старый контейнер ещё существует до пересоздания
Volume'ы не трогаем; данные не теряются. Резервная копия текущего состояния:
docker inspect icq-prosody > /tmp/icq-prosody-inspect-before.json (снимок до пересоздания).
Затронутые файлы
Не меняем ни одного файла конфигурации. Только состояние Docker (контейнер).
Затрагиваемые сервисы/порты
- prosody: 5222/5269/5280/5281 (все сохраняются из compose)
- webchat: 8081 (nginx, проксируется Caddy на vps02)
- slidgram: 5347 (external component)
- Сеть: icq_default (172.27.0.0/16, шлюз 172.27.0.1)