はい。
まず、depends-on
ことを理解してください ほとんど完全に役に立たないです。 Dockerはアプリケーションについて何も知りません。データベースサーバーが実際にリクエストを処理する準備ができていないことを知る方法はありません。
正しい解決策は、(a)準備ができるまで最初のデータベース接続を再試行し、(b)接続が失敗した場合にデータベースに再接続するように、アプリケーションをコーディングすることです。 (a)質問している問題を解決し、(b)アプリケーションコンテナから独立してデータベースコンテナを再起動できるようにします。
アプリケーションコンテナ内のコードを制御しない場合は、次のようなシェルスクリプトでメインコマンドをラップできます。
while ! psql -c 'select 1'; do
sleep 1
done
(適切な認証オプションを設定するか、.pgpass
を設定します ファイル)