diff --git a/Makefile b/Makefile
index 2cabaebcf..3d582fafd 100644
--- a/Makefile
+++ b/Makefile
@@ -222,6 +222,10 @@ run: $(PROFILE) quickrun
quickrun:
./_build/$(PROFILE)/rel/emqx/bin/emqx console
+## Take the currently set PROFILE
+docker:
+ @$(BUILD) $(PROFILE) docker
+
## docker target is to create docker instructions
.PHONY: $(REL_PROFILES:%=%-docker) $(REL_PROFILES:%=%-elixir-docker)
define gen-docker-target
diff --git a/apps/emqx_bridge/i18n/emqx_bridge_schema.conf b/apps/emqx_bridge/i18n/emqx_bridge_schema.conf
index d575f09bc..901f25455 100644
--- a/apps/emqx_bridge/i18n/emqx_bridge_schema.conf
+++ b/apps/emqx_bridge/i18n/emqx_bridge_schema.conf
@@ -35,8 +35,18 @@ emqx_bridge_schema {
desc_status {
desc {
- en: """The status of the bridge"""
- zh: """Bridge 的状态"""
+ en: """The status of the bridge
+- connecting
: the initial state before any health probes were made.
+- connected
: when the bridge passes the health probes.
+- disconnected
: when the bridge can not pass health probes.
+- stopped
: when the bridge resource is requested to be stopped.
+- inconsistent
: When not all the nodes are at the same status."""
+ zh: """Bridge 的连接状态
+- connecting
: 启动时的初始状态。
+- connected
: 桥接驱动健康检查正常。
+- disconnected
: 当桥接无法通过健康检查。
+- stopped
: 桥接处于停用状态。
+- inconsistent
: 集群中有各节点汇报的状态不一致。"""
}
label: {
en: "Bridge Status"
@@ -46,8 +56,16 @@ emqx_bridge_schema {
desc_node_status {
desc {
- en: """The status of the bridge for each node"""
- zh: """每个节点的 Bridge 状态"""
+ en: """The status of the bridge for each node.
+- connecting
: the initial state before any health probes were made.
+- connected
: when the bridge passes the health probes.
+- disconnected
: when the bridge can not pass health probes.
+- stopped
: when the bridge resource is requested to be stopped."""
+ zh: """每个节点的 Bridge 状态
+- connecting
: 启动时的初始状态。
+- connected
: 桥接驱动健康检查正常。
+- disconnected
: 当桥接无法通过健康检查。
+- stopped
: 桥接处于停用状态。"""
}
label: {
en: "Node Bridge Status"
diff --git a/apps/emqx_bridge/src/schema/emqx_bridge_schema.erl b/apps/emqx_bridge/src/schema/emqx_bridge_schema.erl
index c490294eb..ed2baec8f 100644
--- a/apps/emqx_bridge/src/schema/emqx_bridge_schema.erl
+++ b/apps/emqx_bridge/src/schema/emqx_bridge_schema.erl
@@ -208,7 +208,7 @@ desc(_) ->
undefined.
status() ->
- hoconsc:enum([connected, disconnected, connecting]).
+ hoconsc:enum([connected, disconnected, connecting, inconsistent]).
node_name() ->
{"node", mk(binary(), #{desc => ?DESC("desc_node_name"), example => "emqx@127.0.0.1"})}.
diff --git a/scripts/test/start-two-nodes-in-docker.sh b/scripts/test/start-two-nodes-in-docker.sh
index 16f46a53f..720eff0ca 100755
--- a/scripts/test/start-two-nodes-in-docker.sh
+++ b/scripts/test/start-two-nodes-in-docker.sh
@@ -10,7 +10,8 @@ set -euo pipefail
# ensure dir
cd -P -- "$(dirname -- "$0")/.."
-IMAGE="${1}"
+IMAGE1="${1}"
+IMAGE2="${2:-${IMAGE1}}"
NET='emqx.io'
NODE1="node1.$NET"
@@ -35,7 +36,7 @@ docker run -d -t --restart=always --name "$NODE1" \
-e EMQX_listeners__wss__default__enable=false \
-e EMQX_listeners__tcp__default__proxy_protocol=true \
-e EMQX_listeners__ws__default__proxy_protocol=true \
- "$IMAGE"
+ "$IMAGE1"
docker run -d -t --restart=always --name "$NODE2" \
--net "$NET" \
@@ -47,7 +48,7 @@ docker run -d -t --restart=always --name "$NODE2" \
-e EMQX_listeners__wss__default__enable=false \
-e EMQX_listeners__tcp__default__proxy_protocol=true \
-e EMQX_listeners__ws__default__proxy_protocol=true \
- "$IMAGE"
+ "$IMAGE2"
mkdir -p tmp
cat < tmp/haproxy.cfg
@@ -84,14 +85,17 @@ defaults
## API
##----------------------------------------------------------------
frontend emqx_dashboard
- mode tcp
- option tcplog
- bind *:18083
- default_backend emqx_dashboard_back
+ mode tcp
+ option tcplog
+ bind *:18083
+ default_backend emqx_dashboard_back
backend emqx_dashboard_back
+ # Must use a consistent dispatch when EMQX is running on different versions
+ # because the js files for the dashboard is chunked, having the backends sharing
+ # load randomly will cause the browser fail to GET some chunks (or get bad chunks if names clash)
+ balance first
mode http
- # balance static-rr
server emqx-1 $NODE1:18083
server emqx-2 $NODE2:18083