No dockerfile, adicione:
RUN apt-get update && apt-get install -f -y postgresql-client
Em seguida, use o script de ponto de entrada:
while ! pg_isready -h ${MOODLE_DB_HOST} -p ${MOODLE_DB_PORT} > /dev/null 2> /dev/null; do
echo "Connecting to ${MOODLE_DB_HOST} Failed"
sleep 1
done
Outra abordagem
Outra abordagem é usar o netcat:
for count in {1..100}; do
echo "Pinging mysql database attempt "${count}
if $(nc -z ${DB_HOST} ${DB_PORT}) ; then
echo "Can connect into database"
break
fi
sleep 5
done
Onde a variável ${DB_HOST}
contém o host do banco de dados, enquanto ${DB_PORT}
contém a porta do banco de dados. Isso funciona na maioria dos bancos de dados (exceto se você quiser detectar seu tipo também, onde um script personalizado é necessário).