fix: do not check DB availability if code errors (#110)

* fix: do not check DB availability if code errors

Do not wait for the DB to be available if there are other errors blocking the access to it.

* Update docker-entrypoint.sh

Co-authored-by: Kévin Dunglas <dunglas@gmail.com>
This commit is contained in:
Emanuele Panzeri 2021-01-22 17:15:50 +01:00 committed by GitHub
parent 3445aac4c6
commit 5feeabc3ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -32,14 +32,20 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then
if grep -q ^DATABASE_URL= .env; then if grep -q ^DATABASE_URL= .env; then
echo "Waiting for db to be ready..." echo "Waiting for db to be ready..."
ATTEMPTS_LEFT_TO_REACH_DATABASE=60 ATTEMPTS_LEFT_TO_REACH_DATABASE=60
until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || bin/console doctrine:query:sql "SELECT 1" >/dev/null 2>&1; do until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || DATABASE_ERROR=$(bin/console doctrine:query:sql "SELECT 1" 2>&1); do
if [ $? -eq 255 ]; then
# If the Doctrine command exits with 255, an unrecoverable error occurred
ATTEMPTS_LEFT_TO_REACH_DATABASE=0
break
fi
sleep 1 sleep 1
ATTEMPTS_LEFT_TO_REACH_DATABASE=$((ATTEMPTS_LEFT_TO_REACH_DATABASE - 1)) ATTEMPTS_LEFT_TO_REACH_DATABASE=$((ATTEMPTS_LEFT_TO_REACH_DATABASE - 1))
echo "Still waiting for db to be ready... Or maybe the db is not reachable. $ATTEMPTS_LEFT_TO_REACH_DATABASE attempts left" echo "Still waiting for db to be ready... Or maybe the db is not reachable. $ATTEMPTS_LEFT_TO_REACH_DATABASE attempts left"
done done
if [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ]; then if [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ]; then
echo "The db is not up or not reachable" echo "The database is not up or not reachable:"
echo "$DATABASE_ERROR"
exit 1 exit 1
else else
echo "The db is now ready and reachable" echo "The db is now ready and reachable"