mirror of
https://github.com/MarijnDoeve/TijdVoorDeTest.git
synced 2026-03-05 20:44:19 +01:00
43 lines
1.4 KiB
Bash
Executable File
43 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
if [ "$1" = 'frankenphp' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then
|
|
if [ -z "$(ls -A 'vendor/' 2>/dev/null)" ]; then
|
|
composer install --prefer-dist --no-progress --no-interaction
|
|
fi
|
|
|
|
if grep -q ^DATABASE_URL= .env; then
|
|
echo 'Waiting for database to be ready...'
|
|
ATTEMPTS_LEFT_TO_REACH_DATABASE=60
|
|
until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || DATABASE_ERROR=$(php bin/console dbal:run-sql -q "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
|
|
ATTEMPTS_LEFT_TO_REACH_DATABASE=$((ATTEMPTS_LEFT_TO_REACH_DATABASE - 1))
|
|
echo "Still waiting for database to be ready... Or maybe the database is not reachable. $ATTEMPTS_LEFT_TO_REACH_DATABASE attempts left."
|
|
done
|
|
|
|
if [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ]; then
|
|
echo 'The database is not up or not reachable:'
|
|
echo "$DATABASE_ERROR"
|
|
exit 1
|
|
else
|
|
echo 'The database is now ready and reachable'
|
|
fi
|
|
|
|
if [ "$( find ./migrations -iname '*.php' -print -quit )" ]; then
|
|
php bin/console doctrine:migrations:migrate --no-interaction --all-or-nothing
|
|
fi
|
|
fi
|
|
|
|
setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var
|
|
setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var
|
|
|
|
echo 'PHP app ready!'
|
|
fi
|
|
|
|
exec docker-php-entrypoint "$@"
|