fix(emqx): v0.2.0 от официальной базы + резолвимые auth-заглушки — EMQX работает (502 устранён); HISTORY: развязка задокументирована
This commit is contained in:
+8
-25
@@ -1,31 +1,14 @@
|
||||
# EMQX для IoT на платформе Nubes (контейнер «Простой HTTP»).
|
||||
# EMQX для IoT на платформе Nubes.
|
||||
# Образ: naeel/iot-emqx (Docker Hub, публичный).
|
||||
#
|
||||
# ⚠️ Сборка от чистого debian: платформа берёт порт приложения из EXPOSE образа,
|
||||
# а в базовом emqx/emqx:5.5.1 зашито 7 EXPOSE-портов (1883/4370/5369/8083/8084/
|
||||
# 8883/18083), которые невозможно убрать из дочернего Dockerfile. Поэтому здесь
|
||||
# ОДИН EXPOSE 8083 — иначе deck-UI требует несуществующее поле applicationUsePort.
|
||||
# БАЗА — официальный emqx/emqx:5.5.1 (проверен на платформе: заводится, логи в
|
||||
# stdout). Добавляем только наш emqx.conf (auth/ACL, listeners, логи).
|
||||
# ⚠️ У образа 7 EXPOSE-портов (наследие базы) — deck-UI при СОЗДАНИИ требует
|
||||
# один порт; в НАШЕМ кластере используется kubectl set image, вопрос одного
|
||||
# EXPOSE для чужого кластера — отдельная задача (тикет Nubes).
|
||||
|
||||
FROM debian:bookworm-slim
|
||||
FROM emqx/emqx:5.5.1
|
||||
|
||||
RUN apt-get update \
|
||||
&& 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) \
|
||||
&& rm -f /tmp/emqx.deb \
|
||||
&& apt-get purge -y curl \
|
||||
&& apt-get autoremove -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY emqx.conf /etc/emqx/emqx.conf
|
||||
|
||||
# data_dir из emqx.conf: /opt/emqx/data. Launcher работает от пользователя
|
||||
# emqx (deb-пакет создаёт его) — каталог должен принадлежать emqx.
|
||||
RUN mkdir -p /opt/emqx/data \
|
||||
&& chown -R emqx:emqx /opt/emqx/data
|
||||
COPY emqx.conf /opt/emqx/etc/emqx.conf
|
||||
|
||||
EXPOSE 8083
|
||||
|
||||
ENTRYPOINT ["/usr/bin/emqx"]
|
||||
CMD ["foreground"]
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# EMQX-контейнер для IoT (образ naeel/iot-emqx).
|
||||
|
||||
VERSION ?= v0.1.4
|
||||
VERSION ?= v0.2.0
|
||||
IMAGE ?= naeel/iot-emqx
|
||||
|
||||
.PHONY: docker-build docker-push
|
||||
|
||||
+14
-2
@@ -16,7 +16,7 @@ authentication = [
|
||||
backend = http
|
||||
enable = true
|
||||
method = post
|
||||
url = "http://iot-service:9090/internal/mqtt/auth"
|
||||
url = "http://containerk8s.f1ffb134-7d16-45bd-8bef-69f6ec8ab33c.svc.cluster.local:4100/internal/mqtt/auth"
|
||||
body {
|
||||
username = "${username}"
|
||||
password = "${password}"
|
||||
@@ -46,7 +46,7 @@ authorization {
|
||||
type = http
|
||||
enable = true
|
||||
method = post
|
||||
url = "http://iot-service:9090/internal/mqtt/acl"
|
||||
url = "http://containerk8s.f1ffb134-7d16-45bd-8bef-69f6ec8ab33c.svc.cluster.local:4100/internal/mqtt/acl"
|
||||
body {
|
||||
username = "${username}"
|
||||
clientid = "${clientid}"
|
||||
@@ -69,6 +69,18 @@ mqtt {
|
||||
retain_available = false
|
||||
}
|
||||
|
||||
## Логи: console (stdout) — видны через kubectl logs платформы.
|
||||
## Файловый handler отключён (у USER emqx нет прав на /var/log/emqx при deb).
|
||||
log {
|
||||
console_handler {
|
||||
enable = true
|
||||
level = warning
|
||||
}
|
||||
file_handlers.default {
|
||||
enable = false
|
||||
}
|
||||
}
|
||||
|
||||
## Listeners: WebSocket — единственный порт контейнера платформы (8083).
|
||||
## TCP 1883 остаётся для диагностики (не экспонируется платформой).
|
||||
listeners.tcp.default {
|
||||
|
||||
Reference in New Issue
Block a user