Eu tive o mesmo problema ao executar o flyway ao criar uma imagem docker para meu banco de dados com base na imagem postgres:10.5. Adicionei o seguinte ao meu entrypoint.sh antes de executar o flyway, para confirmar que o problema que estava vendo foi causado pela alteração docker-entrypoint.sh @Nick Maraston postada em sua resposta:
echo "$(date) - waiting for database to start"
while ! pg_isready -h localhost -p 5432 -d $POSTGRES_DB
do
echo "$(date) - waiting for database to start"
sleep 10
done
O resultado foi que o código acima ficou em loop para sempre. Em seguida, substituí-o pelo seguinte código para reiniciar o banco de dados ouvindo conexões TCP/IP no localhost:
pg_ctl -D "$PGDATA" -m fast -w stop
pg_ctl -D "$PGDATA" \
-o "-c listen_addresses='localhost'" \
-w start
Em vez de reiniciar o banco de dados assim, uma solução mais limpa seria usar o JDBC
-socketFactory
opção explicada aqui
.