fix(emqx): образ с одним EXPOSE (scratch) + конфиг без salt_rounds — платформа требует ровно один порт

This commit is contained in:
Repinoid
2026-10-11 15:01:31 +03:00
parent 0832d7e0cb
commit 582902e47a
3 changed files with 64 additions and 7 deletions
+20 -6
View File
@@ -1,14 +1,28 @@
# EMQX для IoT на платформе Nubes.
# Образ: gitea.services.ngcloud.ru/nail/iot-emqx (Gitea registry платформы).
#
# БАЗА — официальный emqx/emqx:5.5.1 (проверен на платформе: заводится, логи в
# stdout). Добавляем только наш emqx.conf (auth/ACL, listeners, логи).
# ⚠️ У образа 7 EXPOSE-портов (наследие базы) — deck-UI при СОЗДАНИИ требует
# один порт; в НАШЕМ кластере используется kubectl set image, вопрос одного
# EXPOSE для чужого кластера — отдельная задача (тикет Nubes).
# ⚠️ ВАЖНО: платформа Nubes требует РОВНО ОДИН EXPOSE у образа (иначе create падает
# с «Не указан applicationUsePort, а expose в Dockerfile содержит несколько портов»).
# База emqx/emqx:5.5.1 имеет 7 EXPOSE (18083/1883/4370/5369/8083/8084/8883), а EXPOSE
# не удаляется из наследуемого образа. Поэтому копируем rootfs базового образа в чистый
# (EXPOSE НЕ переносится) и выставляем единственный порт 8083.
#
# БАЗА — официальный emqx/emqx:5.5.1. Добавляем только наш emqx.conf (auth/ACL, listeners, логи).
FROM emqx/emqx:5.5.1
FROM emqx/emqx:5.5.1 AS base
FROM scratch
COPY --from=base / /
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
COPY emqx.conf /opt/emqx/etc/emqx.conf
EXPOSE 8083
USER emqx
WORKDIR /opt/emqx
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
CMD ["/opt/emqx/bin/emqx", "foreground"]