Files
netneutrality/startup.sh
T
anthorob d0ea0535e2 Add health checks and dependency conditions in docker-compose.yml
Introduced health checks for `netneutrality-db` to ensure proper readiness before dependent services start. Replaced static sleep in `startup.sh` with dynamic database availability checks, improving startup reliability and reducing downtime risks.
2026-10-18 01:53:10 -04:00

45 lines
1.0 KiB
Bash

#!/bin/sh
_term() {
echo "Caught SIGTERM/SIGINT signal, graceful shutdown of bot.."
if [ -z "$pid" ]; then
echo "Bot isn't running, exiting."
exit 0
else
# SIGTERM triggers the JVM shutdown hook (App.shutdown); wait until it has finished.
kill -TERM "$pid" 2>/dev/null
wait "$pid"
exit $?
fi
}
trap _term TERM
trap _term INT
API_PORT="${API_PORT:-9000}"
MYSQL_HOST="${MYSQL_HOST:-localhost}"
MYSQL_PORT="${MYSQL_PORT:-3306}"
MYSQL_DATABASE="${MYSQL_DATABASE:-netneutrality}"
if [ ! -f /usr/bin/nc ]; then
echo "nc not found. Exiting."
exit 1
fi
echo "Checking if MySQL / MariaDB is started.."
if /usr/bin/nc -z $MYSQL_HOST $MYSQL_PORT; then
echo "Database OK. Starting bot..";
export FLYWAY_URL="jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}"
export FLYWAY_USER="${MYSQL_USER}"
export FLYWAY_PASSWORD="${MYSQL_PASSWORD}"
/opt/java/openjdk/bin/java -jar /app/netneutrality.jar &
pid=$!
wait "$pid"
else
echo "No connection to database, shutting down.."
exit 1
fi