Files
lambdaiot-core/scripts/wait-for-mqtt.sh

40 lines
892 B
Bash

#!/bin/sh
# wait-for-mqtt.sh: wait for MQTT broker from $MQTT_BROKER (default tcp://mosquitto:1883)
set -e
BROKER=${MQTT_BROKER:-tcp://mosquitto:1883}
# strip tcp:// if present
BROKER=${BROKER#tcp://}
HOST=${BROKER%%:*}
PORT=${BROKER#*:}
if [ "$HOST" = "$PORT" ]; then
# no port provided
PORT=1883
fi
echo "Waiting for MQTT broker $HOST:$PORT..."
while ! nc -z "$HOST" "$PORT"; do
echo "broker not ready, retrying..."
sleep 1
done
echo "Broker $HOST:$PORT is up"
# Optionally wait for MySQL if DB_HOST/DB_PORT are set
DB_HOST=${DB_HOST:-}
DB_PORT=${DB_PORT:-}
if [ -n "$DB_HOST" ]; then
if [ -z "$DB_PORT" ]; then
DB_PORT=3306
fi
echo "Waiting for MySQL $DB_HOST:$DB_PORT..."
while ! nc -z "$DB_HOST" "$DB_PORT"; do
echo "mysql not ready, retrying..."
sleep 1
done
echo "MySQL $DB_HOST:$DB_PORT is up"
fi
echo "Starting server"
exec /usr/local/bin/server