docs: HISTORY — ws-probe создан, образ запушен (digest, инструкция deck-UI)
This commit is contained in:
@@ -97,3 +97,45 @@
|
|||||||
- Первая проверка перед стартом: WebSocket upgrade (wss) через платформенный
|
- Первая проверка перед стартом: WebSocket upgrade (wss) через платформенный
|
||||||
ingress — тестовый контейнер с WS-эндпоинтом + `wscat`.
|
ingress — тестовый контейнер с WS-эндпоинтом + `wscat`.
|
||||||
- ЖДЁМ решения пользователя по пути миграции.
|
- ЖДЁМ решения пользователя по пути миграции.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Создан ws-probe — тестовый контейнер для проверки wss
|
||||||
|
|
||||||
|
**Команда пользователя:** «делай» (создать пробник + залить образ на Docker Hub;
|
||||||
|
для запуска в deck-UI нужен путь до образа).
|
||||||
|
|
||||||
|
**Что сделано** (все шаги):
|
||||||
|
1. Создан каталог `ws-probe/` в IoT-репозитории:
|
||||||
|
- `main.go` — Go echo-сервер на `gorilla/websocket`: `GET /health` (JSON
|
||||||
|
status+version), `GET /ws` (echo + ping каждые 20с, read-deadline 60с,
|
||||||
|
сбрасывается pong'ами — мёртвые соединения закрываются), `GET /` (HTML).
|
||||||
|
Без кредов, без внешних зависимостей.
|
||||||
|
- `Dockerfile` — multi-stage golang:1.25 → distroless/static:nonroot,
|
||||||
|
порт 8080 (меняется env `PORT`), версия через ldflags.
|
||||||
|
- `Makefile` — `docker-build`/`docker-push`, `VERSION=v0.1.0`, `IMAGE=naeel/iot-ws-probe`.
|
||||||
|
- `go.mod`/`go.sum` — отдельный модуль (gorilla/websocket v1.5.3), чтобы
|
||||||
|
не тащить зависимость в основной go.mod IoT.
|
||||||
|
2. `.gitignore` — добавлен `ws-probe/ws-probe` (сборочный бинарник).
|
||||||
|
3. Локальные проверки: `go vet` OK; smoke: `/health` → `{"status":"ok","version":"v0.1.0"}`;
|
||||||
|
WS-апгрейд → `HTTP/1.1 101 Switching Protocols` (Sec-WebSocket-Accept корректный).
|
||||||
|
4. Docker: логин в Docker Hub под `naeel` активен (проверен `docker info`).
|
||||||
|
5. Образ собран и запушен (публичный):
|
||||||
|
- **`naeel/iot-ws-probe:v0.1.0`** (и `:latest`),
|
||||||
|
- digest `sha256:dc029be3e79fb37f15ce23477096e340ab181b96c0132dc2e443f341e36f0688`,
|
||||||
|
- размер 10.9MB.
|
||||||
|
6. Коммиты: `27cb40e` (ws-probe), `2a7ecd2` (HISTORY). Пуш НЕ делался (не просили).
|
||||||
|
|
||||||
|
**Инструкция для deck-UI («Простой HTTP контейнер»):**
|
||||||
|
- Образ: `naeel/iot-ws-probe:v0.1.0` (уникальный тег — `latest` кэшируется
|
||||||
|
зеркалом платформы).
|
||||||
|
- Env vars: не нужны (порт 8080 — дефолт; при необходимости `PORT`).
|
||||||
|
- Никаких кредов не требуется.
|
||||||
|
|
||||||
|
**Критерии проверки wss после деплоя** (будут применены):
|
||||||
|
- `curl -i -H "Connection: Upgrade" -H "Upgrade: websocket" ...` → 101;
|
||||||
|
- `wscat -c wss://<домен>/ws` → подключение, echo, соединение живёт 5–10 мин;
|
||||||
|
- переподключения стабильны; ping/pong проходят.
|
||||||
|
|
||||||
|
**Следующий шаг:** пользователь создаёт контейнер в deck-UI с этим образом —
|
||||||
|
далее тест wss по критериям выше.
|
||||||
|
|||||||
Reference in New Issue
Block a user