From f37bccce79010f80df125f5c26d7efeee3c4c536 Mon Sep 17 00:00:00 2001 From: Jonas Leder <jonas@jonasled.de> Date: Mon, 10 Mar 2025 20:08:25 +0100 Subject: [PATCH] add option to exit container on MQTT disconnect: --- Dockerfile | 3 ++- mqttclient/main.go | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c639138..7436f6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,8 @@ COPY ./ ./ RUN CGO_ENABLED=0 GOOS=linux xx-go build -ldflags "-w -s" -o /ems-esp-logger FROM jonasled.dev/infra/images/scratch-rootless@sha256:b29ee9170c65f2825d77f1c8d97c6ae138f76fb3a150454eb6eb87e7767fba4b -ENV UPDATE_INSTALL=false +ENV UPDATE_INSTALL=false \ + EXIT_ON_DISCONNECT=true COPY --from=build /ems-esp-logger /ems-esp-logger ENTRYPOINT ["/ems-esp-logger"] diff --git a/mqttclient/main.go b/mqttclient/main.go index 4ebed07..7f0092f 100644 --- a/mqttclient/main.go +++ b/mqttclient/main.go @@ -43,6 +43,11 @@ var messagePubHandlerBoiler mqtt.MessageHandler = func(client mqtt.Client, msg m var connectHandler mqtt.OnConnectHandler = func(client mqtt.Client) { log.Log.Info("Successfully connected to MQTT broker") + if os.Getenv("EXIT_ON_DISCONNECT") == "true" { + log.Log.Info("Sleeping 10s before exiting") + time.Sleep(10 * time.Second) + os.Exit(1) + } } var connectLostHandler mqtt.ConnectionLostHandler = func(client mqtt.Client, err error) { -- GitLab