From 2f127ee612bfe59ad80942f9000beba1b35b8293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 16 Aug 2026 13:28:41 +0400 Subject: [PATCH] =?UTF-8?q?fix(emqx):=20v0.1.2=20=E2=80=94=20procps=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20launcher=20(502=20=D0=B8=D0=B7-=D0=B7?= =?UTF-8?q?=D0=B0=20ps:=20command=20not=20found);=20HISTORY:=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20deck/502=20=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HISTORY/2026-08-16-session-log.md | 31 +++++++++++++++++++++++++++++++ emqx/Dockerfile | 2 +- emqx/Makefile | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/HISTORY/2026-08-16-session-log.md b/HISTORY/2026-08-16-session-log.md index 06adf41..ab6a0ac 100644 --- a/HISTORY/2026-08-16-session-log.md +++ b/HISTORY/2026-08-16-session-log.md @@ -641,3 +641,34 @@ store сам создаст таблицу iot_devices. 1. EMQX: образ `naeel/iot-emqx:latest` → узнать UUID namespace. 2. iot-service: образ `naeel/iot-service:latest` + env (см. ниже). 3. kubectl-патч auth/ACL URL в EMQX (команда в разделе 16). + +--- + +## 20. EMQX-контейнер: ошибки deck и 502 — разбор (16.08) + +### Ошибка 1: «Не указан applicationUsePort, expose содержит несколько портов» +- **Факт:** в форме deck-UI ПОЛЯ порта НЕТ — платформа берёт порт из EXPOSE образа. +- **Причина:** базовый `emqx/emqx:5.5.1` имеет 7 EXPOSE-портов + (18083, 1883, 4370, 5369, 8083, 8084, 8883), которые невозможно убрать из + дочернего Dockerfile (`docker inspect` подтверждает — порты наследуются). +- **Решение:** образ пересобран от чистого `debian:bookworm-slim` с deb-пакетом + EMQX 5.5.1: единственный `EXPOSE 8083`. + v0.1.1, digest `sha256:7de0ec8a…01dd08f`. Проверка: `{"8083/tcp":{}}`. +- **Урок:** для платформы «Простой HTTP контейнер» образ обязан иметь РОВНО один + EXPOSE-порт; наследуемые порты базового образа — блокер. + +### Ошибка 2: 502 Bad Gateway (домен https://exqx.containerk8s.dev.nubes.ru/) +- **Диагностика:** deployment `containerk8s` в ns `2fdd9658-4995-494f-892a-d88dda7da1ee`, + READY 0/1, рестарты; лог пода: + `/usr/bin/emqx: line 457: ps: command not found` +- **Причина:** launcher-скрипт EMQX использует `ps`, а `debian:bookworm-slim` + не содержит пакета `procps`. +- **Решение:** добавлен `procps` в установку; v0.1.2, digest + `sha256:d3722528…debb30`, запушен (latest + v0.1.2). EXPOSE по-прежнему один. +- **Действие пользователя:** redeploy контейнера EMQX в deck-UI (образ + `naeel/iot-emqx:latest` — платформа подтянет новый digest по latest). + +### Состояние +- EMQX-контейнер пока работает на старом сломанном образе — после redeploy + проверить: под Ready 1/1, лог без `ps: command not found`, wss-подключение. +- Образы: iot-emqx v0.1.2 (latest), iot-service v0.1.0 (latest) — оба на Docker Hub. diff --git a/emqx/Dockerfile b/emqx/Dockerfile index 7429987..58d9d09 100644 --- a/emqx/Dockerfile +++ b/emqx/Dockerfile @@ -9,7 +9,7 @@ FROM debian:bookworm-slim RUN apt-get update \ - && apt-get install -y --no-install-recommends ca-certificates curl \ + && apt-get install -y --no-install-recommends ca-certificates curl procps \ && curl -fsSL -o /tmp/emqx.deb \ https://github.com/emqx/emqx/releases/download/v5.5.1/emqx-5.5.1-debian12-amd64.deb \ && (dpkg -i /tmp/emqx.deb || apt-get -f install -y) \ diff --git a/emqx/Makefile b/emqx/Makefile index 8177837..bd708ee 100644 --- a/emqx/Makefile +++ b/emqx/Makefile @@ -1,6 +1,6 @@ # EMQX-контейнер для IoT (образ naeel/iot-emqx). -VERSION ?= v0.1.1 +VERSION ?= v0.1.2 IMAGE ?= naeel/iot-emqx .PHONY: docker-build docker-push