postgres:10.5イメージに基づいてデータベースのDockerイメージを作成するときに、flywayの実行で同じ問題が発生しました。 flywayを実行する前に、entrypoint.shに以下を追加して、表示されていた問題がdocker-entrypoint.shの変更@NickMarastonが彼の回答に投稿したことが原因であることを確認しました。
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
その結果、上記のコードは永遠にループしていました。次に、それを次のコードに置き換えて、ローカルホストでTCP/IP接続をリッスンしているデータベースを再起動します。
pg_ctl -D "$PGDATA" -m fast -w stop
pg_ctl -D "$PGDATA" \
-o "-c listen_addresses='localhost'" \
-w start
このようにデータベースを再起動するのではなく、JDBC -socketFactory
を使用する方がよりクリーンな解決策になります。 オプションの説明