Měl jsem stejný problém se spuštěním flyway při vytváření obrázku dockeru pro moji databázi na základě obrázku postgres:10.5. Před spuštěním flyway jsem přidal následující do svého entrypoint.sh, abych potvrdil, že problém, který jsem viděl, byl způsoben změnou docker-entrypoint.sh, kterou @Nick Maraston zveřejnil ve své odpovědi:
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
Výsledkem bylo, že výše uvedený kód se věčně opakoval. Poté jsem jej nahradil následujícím kódem pro restartování databáze naslouchající připojení TCP/IP na localhost:
pg_ctl -D "$PGDATA" -m fast -w stop
pg_ctl -D "$PGDATA" \
-o "-c listen_addresses='localhost'" \
-w start
Spíše než takto restartovat databázi by bylo čistším řešením použít JDBC -socketFactory
možnost je vysvětlena zde
.