docker-ttrss/root/etc/cont-init.d/98-wait-for-db

29 lines
974 B
Plaintext
Raw Normal View History

#!/usr/bin/with-contenv sh
# Wait for the DB to be reachable before proceeding. This avoids race condition
# whereby database is not ready (yet), and so TTRSS config isn't correctly created
#############
# This simply duplicates the logic from ttrss-configure-db.php
ename='DB';
eport=5432;
if [ '$DB_TYPE' = 'mysql' ];
then
eport=3306;
dbhost=$DB_PORT_3306_TCP_ADDR
else
eport=5432;
dbhost=$DB_PORT_5432_TCP_ADDR
fi
#############
# Run wait-for to confirm DB comes up before we proceed
# Reduce default timeout to 1s because if the DB is not instantly available,
# Then it's even if it _happens_ to become available while we're testing,
# it won't be ready for us yet. Better to exit and restart the container altogether,
# So set "S6_BEHAVIOUR_IF_STAGE2_FAILS=2" in docker-compose.yml if you need this (i.e., in swarm mode, where dependencies don't work)
echo "Checking database responds within 1s on $dbhost:$eport..."
/srv/wait-for $dbhost:$eport --timeout=1