Saya memiliki masalah yang sama dalam menjalankan jalur terbang saat membuat gambar buruh pelabuhan untuk database saya berdasarkan gambar postgres:10.5. Saya menambahkan yang berikut ini ke entrypoint.sh saya sebelum menjalankan flyway, untuk mengonfirmasi bahwa masalah yang saya lihat disebabkan oleh perubahan docker-entrypoint.sh @Nick Maraston yang diposting dalam jawabannya:
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
Hasilnya adalah kode di atas berulang selamanya. Saya kemudian menggantinya dengan kode berikut untuk me-restart database mendengarkan koneksi TCP/IP di localhost:
pg_ctl -D "$PGDATA" -m fast -w stop
pg_ctl -D "$PGDATA" \
-o "-c listen_addresses='localhost'" \
-w start
Daripada memulai ulang database seperti ini, solusi yang lebih bersih adalah menggunakan -socketFactory
JDBC opsi dijelaskan di sini
.